{{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.