{{tag>shell awk perl }} ====== Shell - Intercaler une chaîne de caractères dans une liste ====== Imaginons le fichier suivant nommé "file.txt" : LIGNE A LIGNE B LIGNE C Pour obtenir la sortie suivante : LIGNE A * NOUVELLE CHAINE * LIGNE B * NOUVELLE CHAINE * LIGNE C Il est possible d'utiliser l'une des deux commandes suivantes : cat file.txt | perl -pe 'print "* NOUVELLE CHAINE *\n" if( $. != 1 );' ou cat file.txt | awk '{if (NR == 1) { tmp=$0 } else { print tmp"\n* NOUVELLE CHAINE*"; tmp=$0 }} END { print tmp }' L’intérêt est de ne pas avoir la chaîne "* NOUVELLE CHAINE *" en début ou fin de sortie.