Quelques commandes utiles avec la fonction sed.

J’avais déja pris quelques note sur sed dans cet article sed : afficher un fichier sans les lignes de commentaires

remplacer une chaine par une autre

    sed -i.bak ' s/motif/remplacement/' fichier

Cette commande va :

  • sauvegarder fichier en fichier.bak
  • remplacer le motif par la chaine de remplacement
  • le résultat est sauvegarder dans le fichier d’entrée 

Si le motif est présent plusieurs fois par ligne, il faut utiliser la commande

    sed -i.bak ' s/motif/remplacement/g' fichier

Si la modification est à réaliser uniquement sur la première ligne du fichier :

    sed -i.bak '1  s/motif/remplacement/' fichier

La version 4.05 de sed est requise pour la copie de sauvegarde et pour l’enregistrement du résultat dans le fichier source.

Edit du 08/06/09 Si vous obtenez une erreur du type

sed: -e expression N°1, caractère 33: commande \`s' inachevée

cela provient d’une erreur dans l’expression de recherche/remplacement.

Dans mon cas, il manquait la basse oblique de fermeture pour le remplacement : 's/recherche/remplace' au lieu de 's/recherche/remplace/'.