Sed - Substitution

Substitution

Substitution basique

Simple

- 1ère occurrence (de chaque ligne) rencontrée uniquement

sed 's/la/LA/' fichier.txt

Globale

- Toutes les occurrences (de chaque ligne) rencontrées

sed 's/la/LA/g' fichier.txt

Ciblée

- Seulement la 2ème occurrence (de chaque ligne) rencontrée

sed 's/la/LA/2' fichier.txt

Substitution conditionnée

Simplee

/Motif/ - Uniquement si la ligne contient "motif"

sed '/awk/ s/sed/SED/' fichier.txt

Numéro de ligne - Uniquement la ligne n° "N"

sed '18 s/sed/SED/' fichier.txt

/Regex/ - Uniquement s'il y a correspondance avec l'expression régulière

sed '/^[ ][Ss]ed/ s/ed/ED/g' fichier.txt

Avancée

0,/regex/ - Uniquement la 1ère occurrence rencontrée

sed '0,/sed/ s//SED/' fichier.txt

Bloc

/motif1/,/motif2/ - Uniquement dans l'intervalle "motif1 - motif2"

sed '/Début/,/Fin/ s/ed/ED/' fichier.txt # 1ère occurrence uniquement 
sed '/Début/,/Fin/ s/ed/ED/g' fichier.txt # toutes les occurrences

8,13 - Uniquement dans l'intervalle des lignes 8 à 13

sed '8,13 s/ed/ED/g' fichier.txt

On peut aussi combiner motif et ligne

sed '8,/Fin/ s/ed/ED/g' fichier.txt 
sed '/Début/,13 s/ed/ED/g' fichier.txt

Ou encore avec des "regex"

sed '/Début/,$ s/ed/ED/g' fichier.txt # jusqu'à la fin ($) 
sed '/^[ ][Ss]ed/,13 s/ed/ED/' fichier.txt

Avancée

Substituer tout un texte entre 2 motifs en excluant les motifs

sed  '/Début/,/Fin/{ /Début/b;/Fin/b; s/.*/SED - The Stream ÉDitor/; }' fichier.txt

----------------------------------------------------------------

Fichier de référence employé pour les exemples : à la fin de cet article

Cet article est régulièrement mis à jour par des experts sous la
direction de Jean-François Pillou, fondateur de CommentCaMarche.
A voir également
Ce document intitulé « Sed - Substitution » issu de Comment Ça Marche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.