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
+#!/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
+#!/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 :