Accueil·Commandes du terminal

sed

Traitement de texte

Syntaxe

sed -i 's/[old]/[new]/g' [file]

Modifie le texte ligne par ligne, surtout avec s/old/new/ ; le -i sur place diffère entre GNU et BSD, et sans g final seule la première occurrence de chaque ligne change.

Options courantes

OptionSignification
s/a/b/gReplace a with b; without the trailing g only the first per line
-iEdit in place. GNU takes -i alone, BSD and macOS need -i ""
-EExtended regex; BSD also accepts -r for GNU compatibility
-nPrint nothing unless a command says to, usually with p
-eAdd another expression to the script
-fRead the script from a file

Exemples

sed -i 's/foo/bar/g' file.txt

Replaces every foo in place (GNU).

sed -i '' 's/foo/bar/g' file.txt

The same on macOS, with the empty argument.

sed -n '10,20p' file.txt

Prints only lines 10 to 20.

Ils sont faits pour être chaînés avec des tubes. Trois commandes reliées sont souvent plus courtes qu’une seule qui fait tout.

Comment lire

  • Les crochets [ ] marquent une partie facultative.
  • Les points de suspension … signifient qu’on peut en mettre plusieurs.
  • Les options sont sensibles à la casse : sur certaines commandes, -r et -R ne font pas la même chose.

Questions fréquentes

Q. Que fait sed ?

Modifie le texte ligne par ligne, surtout avec s/old/new/ ; le -i sur place diffère entre GNU et BSD, et sans g final seule la première occurrence de chaque ligne change.

Q. Comment l’écrire ?

sed -i 's/[old]/[new]/g' [file] — les crochets marquent ce qui est facultatif.

Q. Combien d’options valent la peine ?

Il y en a 6 ici ; la liste complète est dans man sed. Cette commande relève de Traitement de texte.

Commandes liées

page man: man sed