admin:systeme:sed

Sed

C’est l’outil absolu pour modifier du texte en le passant par un pipe ! Ou pour effectuer des changements en masses sur un fichier sans l’ouvrir. Bref, comme le dit l’adage : « Sed, c’est bien » 😁

Il est possible de faire des trucs de tarés avec (hey, c’est pas juste un truc pour faire des substitutions à coup d’expressions rationnelles, c’est un vrai éditeur de texte, on peut se balader dans le texte, faire des copier/coller, etc).

On va prendre comme exemple la substitution qui transforme foo en bar.

Pour modifier la sortie d’une commande :

echo 'foo' | sed -e 's/foo/bar/'

Pour afficher un fichier en modifiant son contenu (seul l’affichage est modifié, le fichier ne change pas) :

sed -e 's/foo/bar/' fichier.txt

Pour modifier un fichier (là ça change le fichier) :

sed -e 's/foo/bar/' -i fichier.txt

Pour supprimer les retours à la ligne (là je les remplace par des espaces) :

echo -e "foo\nbar" | sed -z 's/\n/ /g'
echo -e "foo\nbar" | sed ':a;N;$!ba;s/\n/ /g'

NB : on peut aussi utiliser tr.

echo -e "foo\nbar" | tr '\n' ' '
  • admin/systeme/sed.txt
  • Dernière modification: 2019/08/09 09:36
  • par luc