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.