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
| Option | Signification |
|---|---|
| s/a/b/g | Replace a with b; without the trailing g only the first per line |
| -i | Edit in place. GNU takes -i alone, BSD and macOS need -i "" |
| -E | Extended regex; BSD also accepts -r for GNU compatibility |
| -n | Print nothing unless a command says to, usually with p |
| -e | Add another expression to the script |
| -f | Read the script from a file |
Exemples
sed -i 's/foo/bar/g' file.txtReplaces every foo in place (GNU).
sed -i '' 's/foo/bar/g' file.txtThe same on macOS, with the empty argument.
sed -n '10,20p' file.txtPrints 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