Présentation
Découvrez la commande sed, un puissant éditeur de flux permettant de remplacer et d’éditer du contenu textuel de manière rapide et précise dans un environnement Linux. Des substitutions basiques à la suppression de lignes spécifiques, en passant par la modification directe en place (-i) avec sauvegarde automatique, apprenez facilement grâce à des exemples pratiques.
1. Préparation de l’environnement de pratique et substitution de base avec sed (commande s)
Pour réaliser les exercices sed en toute sécurité, créez un répertoire dédié et déplacez-vous dedans en exécutant la commande mkdir -p ~/sed_practice && cd ~/sed_practice.

Afin de générer le texte d’exemple pour l’exercice de substitution de chaînes, exécutez la commande echo -e 'apple is delicious\nbanana is yellow\napple is red' > fruits.txt pour écrire le contenu dans un fichier.

La commande sed est un éditeur de flux conçu pour transformer et éditer des flux de texte.
En utilisant l’opérateur de substitution s, la première occurrence de la chaîne apple rencontrée sur chaque ligne est remplacée par orange puis affichée à l’écran.
Le fichier source fruits.txt n’est pas modifié ; seul le résultat est renvoyé sur la sortie standard.
⚙️ [Options principales]
-i : Modifie et enregistre directement le fichier source au lieu d’afficher le résultat à l’écran.-e : Permet d’enchaîner et d’exécuter plusieurs commandes de script d’édition en une seule fois.-n : Supprime l’affichage automatique de l’espace de motif (pattern space) et n’affiche que les lignes explicitement indiquées.-E ou -r : Active et utilise la syntaxe des expressions régulières étendues (ERE).

En ajoutant l’indicateur g à la fin de l’expression de substitution, toutes les occurrences correspondantes sur une même ligne sont remplacées de manière globale (global).
Cette option s’utilise lorsque le même terme recherché apparaît plusieurs fois sur chaque ligne et que vous souhaitez tout modifier sans omission.

2. Affichage sélectif et suppression de lignes spécifiques (options d et -n)
Pour préparer les données de journal nécessaires à l’exercice de sélection et de suppression de lignes, créez un fichier d’exemple en exécutant la commande echo -e 'Line 1: Server OK\nLine 2: Server Warning\nLine 3: Server Error\nLine 4: Server OK' > server.log.

En combinant l’option -n avec la commande p, seules les lignes 2 à 3 définies par la plage sont affichées à l’écran.
C’est très utile pour supprimer la sortie automatique par défaut et inspecter uniquement des lignes ciblées.

En utilisant la commande d avec la correspondance de motifs, les lignes contenant la chaîne Warning sont exclues et seul le reste du contenu s’affiche à l’écran.
On l’utilise pour filtrer et examiner des logs inutiles ou des lignes répondant à des conditions précises.

Indiquez un numéro de ligne spécifique et exécutez la commande d pour afficher le résultat après suppression de la 2e ligne.
Cette méthode s’utilise lorsque vous souhaitez supprimer une ligne par son numéro et vérifier le contenu du fichier.

3. Modification directe du fichier source et sauvegarde automatique (option -i)
Pour préparer l’exercice de modification d’un fichier de configuration, créez un fichier config.env contenant des données d’exemple de variables d’environnement.

L’utilisation de l’option -i.bak permet de créer une copie de sauvegarde du fichier source nommée config.env.bak tout en remplaçant immédiatement le paramètre DEBUG=true par DEBUG=false directement dans le fichier source.
Cette approche s’emploie pour modifier directement le fichier d’origine tout en conservant son état antérieur en toute sécurité.

Vérifiez le contenu du fichier config.env modifié à l’aide de la commande cat.
Vous pouvez constater que la valeur de DEBUG a bien été changée en false et appliquée au fichier.

Affichez le contenu du fichier de sauvegarde généré automatiquement config.env.bak pour le vérifier.
On constate que l’état d’origine avant modification, à savoir DEBUG=true, a été préservé intact et sauvegardé en toute sécurité.

4. Substitution avancée avec expressions régulières et modification de délimiteur
Pour générer des données d’exemple de chemins de fichiers destinées à l’exercice de substitution de chemins, écrivez le contenu dans le fichier paths.txt à l’aide de la commande echo.

En utilisant le symbole barre verticale (|) comme délimiteur de substitution au lieu de la barre oblique (/) par défaut, remplacez /usr/local/bin par /usr/bin dans les chemins en toute sécurité et affichez le résultat.
Lors de la manipulation de chemins de fichiers ou d’URL contenant des barres obliques, cela permet d’écrire des expressions lisibles sans avoir recours aux caractères d’échappement (\).

Afin de pratiquer la suppression d’espaces à l’aide d’expressions régulières, créez un fichier d’exemple spaces.txt comportant des espaces de début et de fin.

En faisant correspondre le symbole ^ représentant le début de ligne avec l’expression régulière [ \t]* qui cible les espaces et tabulations, supprimez tous les espaces situés en début de chaque ligne et affichez le résultat.
Cette technique est particulièrement utile pour nettoyer en masse les indentations superflues dans des documents ou des fichiers journaux.
![sed ’s/^[ \t]*//’ spaces.txt](/ubuntu/20261008_013946_6/captures/s04_c04_sed__s_____t______spaces_txt.png)
Nous avons passé en revue les utilisations essentielles de la commande sed sous Linux, de la substitution de texte basique jusqu’à la modification par lots de fichiers volumineux.
Puisqu’il s’agit d’un outil très puissant capable de réduire considérablement les tâches d’édition répétitives, n’hésitez pas à l’intégrer dans vos flux de travail dès que nécessaire.