La commande sed (pour stream editor) est l’un des outils les plus puissants et les plus redoutés du terminal linux. Contrairement à un éditeur de texte classique (comme nano ou vim), sed ne nécessite pas d’ouvrir le fichier : il lit le texte, lui applique des transformations à la volée et affiche le résultat ou modifie le fichier directement.
C’est l’outil “roi” pour l’automatisation et la modification de masse.
1. le concept de base
sed fonctionne en lisant un flux de texte ligne par ligne, en appliquant une règle de modification, puis en passant à la ligne suivante.
La syntaxe la plus courante est la suivante :
sed 's/ancien/nouveau/g' fichier.txt
- s : signifie “substitute” (remplacer).
- / : les délimiteurs (on peut utiliser d’autres caractères comme
|ou#). - g : signifie “global” (remplace toutes les occurrences de la ligne, pas seulement la première).
2. les options et commandes essentielles
| option | description |
-i | indispensable : modifie le fichier directement (in-place) au lieu de l’afficher à l’écran. |
-e | permet d’enchaîner plusieurs commandes de modification à la suite. |
-n | désactive l’affichage automatique (souvent utilisé avec la commande p pour n’afficher que certaines lignes). |
3. exemples concrets d’utilisation
remplacer un mot dans tout un fichier
Si vous changez le nom d’un serveur ou d’un dossier dans une configuration :
sed -i 's/localhost/192.168.1.50/g' config.php
supprimer des lignes spécifiques
- supprimer la ligne 3 :
sed '3d' fichier.txt - supprimer toutes les lignes vides :
sed '/^$/d' fichier.txt - supprimer les lignes contenant “test” :
sed '/test/d' fichier.txt
extraire une portion d’un fichier
Pour lire uniquement entre la ligne 10 et la ligne 20 :
sed -n '10,20p' fichier.log
4. comparaison : sed vs awk
| outil | spécialité | analogie |
| sed | modification de texte, remplacement, suppression de lignes. | un scalpel pour retoucher des phrases ou des mots. |
| awk | analyse de données, colonnes, calculs mathématiques. | une calculatrice pour traiter des tableaux de données. |




