grep '^From .* [LMTWFJVSD][a-z]* [JFMASOND][a-z]* [0-9]* [0-9:]* [0-9]*' fichier | wc -l csplit -n 6 fichier '/^From .* [LMTWFJVSD][a-z]* [JFMASOND][a-z]* [0-9]* [0-9:]* [0-9]*/' '{RESULTAT_DU_GREP_CI-DESSUS AUQUEL ON SOUSTRAIT 2}' Se résume en : (il faudrait préalablement mettre le chemin d'accès de fichier en variable) csplit -n 6 fichier '/^From .* [LMTWFJVSD][a-z]* [JFMASOND][a-z]* [0-9]* [0-9:]* [0-9]*/' '{'$(expr $(grep '^From .* [LMTWFJVSD][a-z]* [JFMASOND][a-z]* [0-9]* [0-9:]* [0-9]*' fichier | wc -l) - 2)'}' => ATTENTION, ne marche PAS sur csh (ou tcsh) à cause de la syntaxe $(EXPRESSION) for f in xx*; do echo -en $f '['`ls -lh $f | awk '{ print $5}'`']\t'; grep '^From: ' $f ; echo -en $f'\t' ; grep '^To: ' $f ; echo -en $f'\t' ; grep '^Date: ' $f ; echo -en $f'\t' ; grep '^Subject: ' $f ; done > indexx.txt csplit -n 6 -k fichier '/^From .* [LMTWFJVSD][a-z]* [JFMASOND][a-z]* [0-9]* [0-9:]* [0-9]*/' '{10000000}' => MAUVAIS : génère un avant dernier fichier dont la dernière ligne est en double avec la première du dernier fichier généré awk -F: 'BEGIN { compteur = 0 } $3 >= 500 && $3 < 60000 { print $1 " utilise " $7 ; compteur++ } END { print "il y a " compteur " reponse(s)" }' /etc/passwd