VIVEZ LE
FOOTBALL !

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
Publié par jipicy - Dernière mise à jour le 16 novembre 2011 à 17:16 par kilian
Ce document intitulé « Sed - Substitution » issu de CommentCaMarche (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.
Suggestions
  •  Sed - Substitution
  •  Sed - Introduction à SED - Part II » Fiches pratiques : SED - The Stream EDitor - Part II Ce document est une introduction à la pratique et à l'utilisation de l'éditeur de flux "SED", qui essaie de couvrir certaines fonctionnalités assez méconnues, pour ne pas dire "quasi inconnues", qui font de "SED"...
  •  Remplacer avec sed (Résolu) » Bonjour, Je souhaiterai remplacer les champs des lignes qui commence par un espace par des "0" et qu'il s'arréte dés qu'il trouve un caractére autre qu'un espace. J'ai tenté des trucs mais ça ne marche pas: sed -e 's/ /0/,/"X"/p' fic.txt Merci de...
  •  Sed: avec variable et quotes (Résolu) » Bonjour, J'ai un fichier contenant : aaa bbb ccc Je fais : sed 's/^bbb$//g;/./!d' fichier J'obtiens bien : aaa ccc En revanche si je fais : toto="bbb";sed 's/^$toto$//g;/./!d' fichier ca ne marche pas : aaa bbb ccc Avec les doubles quotes:...
  •  [bash-SED] Substituez une lettre au milieu de (Résolu) » Bonjour, J'ai beau cherché, je ne trouve pas comment mettre un espace entre deux chiffres qui sont seulement séparés par un x exemple: ligne en exemple avec un x dans exemple qui ne dois pas être espacé mais il doit y avoir un espace entre les 2...
  •  [SED] substitution (Résolu) » Bonjour, je developpe un petit script qui enleve les commentaires d'un fichier C. Tout va bien sauf pour les commentaires du type : /* ====================== blabla blabla blabla =======================*/ Pour les supprimer, j'ai voulu supprimer les...
Dossier à la une
Passage au tout numérique : quel coût pour les particuliers ?
Sed - Supprimer une ou plusieurs lignes d'un fichier
Sed - Numérotation de lignes