sed
est un éditeur de flux sous Linux utilisé pour effectuer des transformations de base sur un flux d’entrée (un fichier ou une entrée provenant d’un pipeline). Ce guide fournira des exemples sur l’utilisation de la commande sed
.
Syntax
La syntaxe de base de la commande sed
est la suivante :
$ sed [options] 'commande' fichier
options
: indicateurs optionnels pour modifier le comportement de la commandesed
.commande
: la transformation de texte à effectuer.fichier
: le fichier d’entrée à éditer (ou omis pour l’entrée standard).
Utilisation de base
Remplacement de texte
L’un des usages les plus courants de sed
est de remplacer du texte dans un fichier. Pour remplacer une chaîne dans un fichier, on utilise la syntaxe suivante :
$ sed 's/ancien-texte/nouveau-texte/g' fichier
L’indicateur s
indique que nous utilisons la commande de substitution, ancien-texte
est le texte à remplacer, nouveau-texte
est le texte pour le remplacer et le g
à la fin indique que toutes les occurrences de ancien-texte
doivent être remplacées (sans g
, seule la première occurrence dans chaque ligne serait remplacée).
Impression de lignes spécifiques
Vous pouvez également utiliser sed
pour imprimer des lignes spécifiques d’un fichier. Pour ce faire, utilisez la syntaxe suivante :
$ sed -n '3,5p' fichier
Cela imprimera les lignes 3 à 5 du fichier. L’option -n
indique à sed
de ne n’imprimer que les lignes spécifiées, et pas toutes les lignes du fichier.
Utilisation avancée
Utilisation de expressions régulières
sed
prend en charge les expressions régulières de base, qui peuvent être utilisées pour correspondre et remplacer du texte en fonction de modèles. L’exemple suivant montre comment utiliser une expression régulière pour remplacer toutes les occurrences d’un nombre dans un fichier :
$ sed 's/[0-9]/X/g' fichier
Cela remplacera toutes les occurrences de nombres dans le fichier par la lettre X
.
Suppression de lignes
Vous pouvez utiliser sed
pour supprimer des lignes spécifiques dans un fichier. La syntaxe suivante montre comment supprimer les lignes 1 à 3 :
$ sed '1,3d' fichier
L’indicateur d
indique que nous voulons supprimer les lignes spécifiées.
Ajout de lignes
Il est également possible d’ajouter du texte à un fichier avec sed
. La syntaxe suivante montre comment ajouter du texte à la fin d’un fichier :
$ sed '$a\Nouvelle ligne' fichier
L’indicateur a
indique que nous voulons ajouter du texte et la ligne qui suit (commençant par un \
) est le texte à ajouter.
Conclusion
Ce guide a couvert les fonctionnalités de base de la commande sed
sous Linux, y compris les opérations de remplacement de texte, l’impression de lignes spécifiques, l’utilisation d’expressions régulières, la suppression et l’ajout de lignes. La commande sed
est un outil puissant pour éditer des fichiers de texte et peut être utilisé dans un grand nombre de scripts shell pour effectuer des tâches automatisées.