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é – Traite rapidement les fichiers volumineux sans les ouvrir.
✅ Édition en ligne – Modifier les 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/texte ancien/texte nouveau/g' nom de fichier
Où :
Pour remplacer un mot spécifique dans un fichier, utilisez :
sed 's/Linux/Ubuntu/g' fichier.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 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 '/texte-indésirable/d' fichier.txt
Cela supprime toutes les lignes contenant “texte indésirable”.
Pour supprimer une ligne spécifique, utilisez
sed '5d' file.txt
Cette commande supprime la ligne 5 du fichier file.txt.
Pour ajouter une ligne avant un numéro de ligne spécifique :
sed '3i\Ceci est une nouvelle ligne' 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\Ceci est une ligne ajoutée' file.txt
Ceci ajoute “Ceci est une ligne annexé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
Cela remplace “Linux” par “Ubuntu” et “Server” par “Cloud” dans le fichier.txt.
Pour remplacer des chiffres dans un fichier :
sed 's/[0-9]/#/g' file.txt
Cela remplace tous les chiffres par #.
Pour extraire et afficher les lignes de 5 à 10 :
sed -n '5,10p' file.txt
L’option -n empêche l’impression de l’intégralité du fichier et n’affiche que les lignes 5 à 10.
🔹 Toujours sauvegarder les fichiers avant d’utiliser -i – Pour éviter les pertes de données accidentelles.
🔹 Utiliser les expressions régulières – Un puissant filtrage pour les modifications complexes.
🔹 Tester les commandes avant d’appliquer les modifications – Exécuter sed sans -i pour prévisualiser la sortie.
🔹 Utiliser des scripts pour l’automatisation – Combiner sed avec des scripts shell pour le traitement par lots.
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.