La commande sed (Stream Editor) de Linux est un outil puissant utilisé pour le traitement de texte et la modification de fichiers. Elle permet aux utilisateurs de rechercher, remplacer, insérer et supprimer du texte dans les fichiers de manière efficace, ce qui en fait une commande essentielle pour l’automatisation et l’écriture de scripts. Dans ce guide, nous verrons comment utiliser la commande sed pour mettre à jour des fichiers sous Linux à l’aide d’exemples pratiques.
La commande sed est largement utilisée pour :
Remplacement de texte – Remplacer facilement des mots, des phrases ou des motifs dans des fichiers.
Traitement par lots – Modifier plusieurs fichiers à la fois à l’aide de scripts.
Efficacité – Traiter rapidement des fichiers volumineux sans les ouvrir.
Édition en ligne – Modifier des fichiers directement à partir de la ligne de commande.
Automatisation – Utilisée dans les scripts pour traiter les modifications de texte répétitives.
La syntaxe générale de la commande sed est la suivante :
sed [OPTIONS] 's/old-text/new-text/g' filename
Où :
Pour remplacer un mot spécifique dans un fichier, utilisez :
sed 's/Linux/Ubuntu/g' file.txt
Cela remplace la première occurrence de “Linux” par “Ubuntu” dans chaque ligne du fichier.txt.
Pour remplacer toutes les occurrences d’un mot globalement dans un fichier :
sed 's/Linux/Ubuntu/g' file.txt
Le drapeau g garantit que toutes les occurrences d’une ligne sont remplacées.
Pour effectuer des modifications directement dans le fichier sans afficher la sortie :
sed -i 's/Linux/Ubuntu/g' file.txt
L’option -i permet l’édition sur place, ce qui signifie que le fichier original est modifié sans qu’il soit nécessaire d’enregistrer une version distincte.
Pour ne modifier que certaines lignes d’un fichier, indiquez le numéro de ligne :
sed '3s/Linux/Ubuntu/' file.txt
Cette commande remplace “Linux” par “Ubuntu” uniquement à la ligne 3.
Pour supprimer toutes les lignes contenant un mot spécifique, utilisez :
sed '/unwanted-text/d' file.txt
Cela supprime toutes les lignes qui contiennent “texte indésirable”.
Pour supprimer une ligne spécifique, utilisez :
sed '5d' file.txt
Cela supprime la ligne 5 du fichier file.txt.
Pour ajouter une ligne avant un numéro de ligne spécifique :
sed '3i\This is a new line' file.txt
Ceci insère “Ceci est une nouvelle ligne” avant la ligne 3.
Pour insérer une ligne après un numéro de ligne spécifique :
sed '3a\This is an appended line' file.txt
Ceci ajoute “Ceci est une ligne ajoutée” après la ligne 3.
Pour remplacer du texte dans plusieurs fichiers à la fois :
sed -i 's/Linux/Ubuntu/g' *.txt
Cette commande modifie tous les fichiers .txt du répertoire, en remplaçant “Linux” par “Ubuntu”.
Pour effectuer plusieurs modifications en même temps :
sed -i -e 's/Linux/Ubuntu/g' -e 's/Server/Cloud/g' file.txt
Ceci remplace “Linux” par “Ubuntu” et “Server” par “Cloud” dans file.txt.
Pour remplacer des nombres dans un fichier :
sed 's/[0-9]/#/g' file.txt
Ceci remplace tous les chiffres par #.
Pour extraire et afficher les lignes 5 à 10 :
sed -n '5,10p' file.txt
L’option -n empêche l’impression de l’intégralité du fichier et ne permet d’afficher que les lignes 5 à 10.
La commande sed est un outil polyvalent et efficace pour mettre à jour des fichiers sous Linux. Que vous ayez besoin de remplacer du texte, de supprimer des lignes ou d’insérer du contenu, sed peut automatiser et simplifier ces tâches. En maîtrisant sed, vous pouvez améliorer votre flux de travail et accroître votre productivité dans l’administration de Linux et l’écriture de scripts.