diff --git a/unix/exercices/solutions/systeme-sol.tml b/unix/exercices/solutions/systeme-sol.tml index b876591..20c6b0b 100644 --- a/unix/exercices/solutions/systeme-sol.tml +++ b/unix/exercices/solutions/systeme-sol.tml @@ -579,6 +579,15 @@ Note pour reconstruire l'arborescence, on utilise tar zxvf fichier.

+
+(echo "To: $1";
+echo "Subject: $2";
+echo "  Pour lire ce document, sauvegardez ce mail (par exemple sous le "
+echo "nom bidule) et faites ";
+echo "uudecode bidule | tar tvzf -";
+echo "pour récupérer les fichiers du répertoire $2";
+tar cvf - $2 | gzip | uuencode /dev/stdout) | mail $1
+
@@ -589,7 +598,7 @@ par ~ (tilde) dans la sous-arborescence du r courant.
-find . -name \( '*~' -0 'core' \) -print
+find . -name '*~'
 

@@ -604,7 +613,19 @@ d

  • S'appelant core;
  • -
  • S'appelant a.out.
  • +
  • S'appelant a.out.
  • + +
    +#!/bin/sh
    +
    +for i in `find . \( -name '*~' -o -name 'core' -o -name 'a.out' -o -name '#*#' \) -type f` ;
    +do
    +rm -f $i
    +done;
    +
    +
    + + @@ -612,7 +633,7 @@ d Écrire un script permettant d'appliquer divers filtres sur un fichier. Ce script est lancé avec un argument, qui doit être un nom de fichier appelé -fichier de travail; dans le cas contraire, on afficher un message d'erreur. +fichier de travail; dans le cas contraire, on affiche un message d'erreur. On attend ensuite une commande en mode interactif, qui peut être : @@ -631,7 +652,51 @@ fichier de travail dans le fichier pr
  • autre chose : message d'erreur.
  • - + + +
    +#!/bin/sh
    +
    +if [ $# != "1" ]; then echo "Indiquez un nom de fichier";exit 1; fi
    +if [ ! -r $1 ]; then echo "Fichier $1 inexistant";exit 1; fi
    +
    +TRAVAIL=$1
    +
    +while true;
    +do
    +read CMD
    +case $CMD in
    +end)     exit 0;;
    +
    +cherche) echo -n "Motif   ? ";read MOTIF;
    +         echo -n "Fichier ? ";read FICHIER;
    +         if [ -w $FICHIER ]; then
    +            echo "Le fichier $FICHIER existe déjà";
    +         else
    +            grep $MOTIF $TRAVAIL > $FICHIER
    +         fi
    +         ;;
    +
    +tete|fin)
    +         echo -n "Lignes  ? ";read LGN;
    +         echo -n "Fichier ? ";read FICHIER;
    +         if [ -w $FICHIER ]; then
    +            echo "Le fichier $FICHIER existe déjà";
    +         else
    +            case $CMD in
    +            tete) head -n $LGN < $TRAVAIL > $FICHIER;;
    +            fin)  tail -n $LGN < $TRAVAIL > $FICHIER;;
    +            esac
    +         fi
    +         ;;
    +
    +*)       echo "Commande inexistante";;
    +esac
    +done
    +
    +
    + + diff --git a/unix/exercices/systeme.tml b/unix/exercices/systeme.tml index 594109c..e27f0e2 100644 --- a/unix/exercices/systeme.tml +++ b/unix/exercices/systeme.tml @@ -328,7 +328,7 @@ par ~ (tilde) dans la sous-arborescence du r courant.
    -find . -name \( '*~' -0 'core' \) -print
    +find . -name '*~'
     

    @@ -351,7 +351,7 @@ d Écrire un script permettant d'appliquer divers filtres sur un fichier. Ce script est lancé avec un argument, qui doit être un nom de fichier appelé -fichier de travail; dans le cas contraire, on afficher un message d'erreur. +fichier de travail; dans le cas contraire, on affiche un message d'erreur. On attend ensuite une commande en mode interactif, qui peut être :