Document initial créé par
Jipicy
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