Sed ajout-suppr. de lignes

Posted on August 15, 2011

Voilà, récemment j’ai eu à modifier un ensemble de fichiers et leur ajouter une ligne. Chose vraiment simple avec Sed !

Par exemple, on souhaite ajouter une ligne au début du fichier (numéro de la ligne = 1) :

sed -i '1iCoucou' monfichier.txt

L’option “-i” est là pour écrire directement dans le fichier (monfichier.txt) sans passer par un fichier temporaire.

  • “1iCHAINE” => permet d’insérer en première ligne “CHAINE”

  • “1cCHAINE” => modifie la première ligne (la remplace par “CHAINE”)

  • “1aCHAINE” => ajoute après la première ligne “CHAINE” (équivalent à ‘2iCHAINE’)

On peut vouloir utiliser sed comme avec s/bla/truc/ mais en supprimant une ligne (celle contenant une chaîne de caractères, ou n’en contenant pas par exemple). Un problème que j’ai eu à résoudre récemment : supprimer les lignes vides.

sed -i '/^$/d' fichier.c

L’option d permet de supprimer ce qu’on a trouvé (ici la ligne).

C’est simple, et pratique. Ne pas se priver.