Recherche de site Web

Comment ajouter une ligne après une chaîne dans un fichier à l’aide de la commande sed


Si vous travaillez avec des fichiers texte sur un système Linux, vous devrez peut-être modifier le contenu de ces fichiers. Un outil utile pour cette tâche est sed, qui signifie éditeur de flux, qui vous permet d’effectuer diverses manipulations de texte, telles que le remplacement de texte, la suppression de lignes et l’ajout de nouvelles lignes.

Dans cet article, nous allons vous montrer comment utiliser sed pour ajouter une nouvelle ligne après une chaîne spécifique dans un fichier.

Qu’est-ce que le sed ?

sed est un outil de ligne de commande utilisé pour le traitement de texte, qui lit l’entrée ligne par ligne, applique l’opération spécifiée, puis affiche le résultat.

Vous pouvez utiliser sed pour effectuer des tâches telles que :

  • Recherche et remplacement de texte
  • Insertion ou suppression de lignes
  • Modifier le texte en fonction de motifs

Dans notre cas, nous utiliserons sed pour ajouter une ligne après une chaîne particulière dans un fichier.

Comment ajouter une ligne après une chaîne dans un fichier

Supposons que vous ayez un fichier appelé example.txt avec le contenu suivant :

Hello, this is a test file.
This is the second line.
We are learning how to use sed.
This is the last line.

Maintenant, supposons que vous vouliez ajouter une nouvelle ligne après la chaîne « apprendre à utiliser sed », vous pouvez utiliser la syntaxe de commande sed suivante.

sed '/pattern/a\new line of text' filename

Décomposons cette commande :

  • /pattern/ est le motif de recherche qui indique à sed de rechercher une chaîne spécifique dans le fichier et de remplacer pattern par la chaîne que vous recherchez.
  • a\ est la commande append qui indique à sed d’ajouter une nouvelle ligne après la ligne contenant le motif de recherche.
  • Nouvelle ligne de texte est le texte que vous souhaitez ajouter.
  • filename est le nom du fichier que vous souhaitez modifier.

Disons que nous voulons ajouter la ligne "Ceci est la nouvelle ligne !« après la chaîne « apprendre à utiliser sed » dans le fichier example.txt.

sed '/learning how to use sed/a\This is the new line!' example.txt

Cela imprimera le contenu du fichier avec la nouvelle ligne ajoutée après la chaîne correspondante, comme indiqué.

Hello, this is a test file.
This is the second line.
We are learning how to use sed.
This is the new line!
This is the last line.

Cependant, cette commande n’affiche que la sortie sur le terminal et ne modifie pas le fichier lui-même.

Si vous souhaitez enregistrer les modifications directement dans le fichier, vous pouvez utiliser l’option -i avec sed pour modifier le fichier en place.

sed -i '/learning how to use sed/a\This is the new line!' example.txt

Après avoir exécuté cette commande, le fichier example.txt sera mis à jour avec la nouvelle ligne ajoutée.

Conclusion

L’utilisation de sed pour ajouter une ligne après une chaîne dans un fichier est simple et puissante. Vous pouvez facilement modifier des fichiers sans avoir besoin de les ouvrir dans un éditeur de texte. Cette méthode est particulièrement utile lorsque vous souhaitez automatiser les modifications de fichiers texte ou apporter rapidement des modifications à des fichiers volumineux.

Se souvenir:

  • Utilisez /pattern/a\new line pour ajouter une ligne après une chaîne spécifique.
  • Utilisez l’option -i pour enregistrer les modifications directement dans le fichier.

Avec ces connaissances, vous pouvez commencer à modifier des fichiers plus efficacement à l’aide de sed !