Memento sed
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/'
.