next up previous contents Next: Processus et variables d'environnement. Up: Flux et sed comme Previous: Sous-expressions d'expressions rationnelles.   Table des matières  

9.8 Insertion et effacement de lignes.

sed peut réaliser des opérations qui améliorent la rédaction de scripts qui modifient des fichiers de configuration. Par exemple:

sed -e '7a\

une ligne supplémentaire.\

Encore une autre.\

Une de plus.' 



ajoute trois lignes à la suite de la ligne 7, tandis que:

sed -e '7i\

une ligne supplémentaire.\

Encore une autre.\

Une de plus.' 



insère trois lignes avant la ligne 7. Par ailleurs,

sed -e '3,5D' 

supprime les lignes de 3 à 5.

Dans la terminologie de sed, les nombres mentionnés ici sont des adresses qui peuvent être détectées à l'aide d'expressions rationnelles. Démontrons cela:

sed -e '/Cher Henry/, /Meilleures salutations, Jeanne/D' 


Cette dernière instruction supprime toutes les lignes comprises entre une ligne contenant l'expression rationnelle Cher Henry et celle contenant, par ailleurs, Meilleures salutations, Jeanne (ou la fin du fichier si la dernière expression n'est pas mentionnée).

Ce comportement s'applique également aux insertions:

sed -e '/Love Jane/i\

Love Carol\

Love Beth' 



Notez que le symbole $ indique la dernière ligne:

sed -e '$i\

The new second last line\

The new last line.' 



et finalement, que le symbole de négation, !, est utilisé pour détecter toutes les lignes qui ne sont pas spécifiées. Par exemple:

sed -e '7,11!D' 


efface toutes les lignes mais pas le texte compris entre les 7ème et 11ème lignes.


next up previous contents Next: Processus et variables d'environnement. Up: Flux et sed comme Previous: Sous-expressions d'expressions rationnelles.   Table des matières  
1-01-2006