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
!