637 tutoriels en ligne

Créa-blog

#100JoursPourCoder
Projet Créa-code | Formation Créa-troyes

Ressources pour développeur web

Théme de la semaine : Search Console

Sed : Modifiez des fichiers texte depuis le terminal

Temps de lecture estimé : 7 minutes
Accueil Terminal Sed : Modifiez des fichiers texte depuis le terminal

Si vous avez déjà ouvert un terminal et regardé un fichier texte en vous disant « il faudrait que je modifie ça partout, mais pas à la main », alors sed est exactement l’outil qu’il vous manque. Discret, rapide et incroyablement puissant, il fait partie de ces commandes que l’on découvre souvent tard… et que l’on regrette de ne pas avoir apprises plus tôt.

  • Gagner du temps en automatisant des modifications de texte répétitives directement depuis le terminal, sans ouvrir ni éditer manuellement des fichiers.
  • Comprendre et utiliser sed en toute confiance, même en partant de zéro, pour manipuler des fichiers texte sans risque et avec méthode.
  • Devenir plus autonome et efficace en ligne de commande, avec un outil discret mais puissant, applicable immédiatement dans des situations concrètes.

Dans ce tutoriel, nous allons apprendre sed depuis le terminal, en partant de zéro. Pas besoin d’être un expert ni un gourou de la ligne de commande. L’objectif est simple : comprendre, pratiquer et gagner du temps, même en tant que débutant.

Qu’est-ce que sed exactement ?

Le nom sed vient de Stream EDitor, que l’on peut traduire par éditeur de flux. Derrière ce terme un peu abstrait se cache une idée très simple : sed permet de modifier du texte automatiquement, ligne par ligne, sans ouvrir de fichier dans un éditeur classique.

Contrairement à un éditeur comme Nano, Vim ou VS Code, sed travaille en arrière-plan, directement depuis le terminal. Il lit un texte, applique des règles, et affiche ou enregistre le résultat.

Pour vulgariser, on pourrait dire que :

sed est un assistant invisible qui lit vos fichiers texte et les corrige à votre place, selon vos instructions.

SED depuis le terminal

Sed est particulièrement utile dès que vous devez traiter du texte en masse. Et dans le monde du développement, de l’administration système ou même du simple bricolage informatique, le texte est partout.

Voici quelques situations concrètes où sed devient vite indispensable :

  • Vous avez un fichier avec une ancienne URL et vous devez la remplacer partout
  • Vous devez supprimer une ligne précise dans des centaines de fichiers
  • Vous voulez modifier automatiquement une configuration serveur
  • Vous devez nettoyer des données avant de les importer
  • Vous travaillez avec des logs, des CSV ou des fichiers de configuration

Là où une modification manuelle prendrait des heures (et beaucoup d’erreurs), sed fait le travail en une seule commande.


La première fois que j’ai vraiment compris l’intérêt de sed, c’était sur un serveur distant. Impossible d’ouvrir un éditeur graphique, des fichiers de configuration énormes, et une simple erreur de frappe pouvait tout casser.

Une commande sed bien écrite a remplacé des dizaines de modifications manuelles, en quelques secondes. Depuis ce jour, sed fait partie de ma boîte à outils de survie en terminal.

Sed et le terminal : comment ça fonctionne ?

Sed fonctionne toujours selon le même principe :

  1. Il lit une entrée (un fichier ou un flux)
  2. Il applique une ou plusieurs instructions
  3. Il affiche le résultat ou l’enregistre

Par défaut, sed ne modifie pas le fichier original. Il affiche simplement le résultat dans le terminal. C’est volontaire, et c’est une excellente chose pour éviter les erreurs irréversibles.

sed 's/chat/chien/' fichier.txt

Cette commande :

  • lit le fichier fichier.txt
  • remplace le premier mot chat par chien sur chaque ligne
  • affiche le résultat dans le terminal

Le fichier original, lui, reste intact.

Installer sed selon votre système

Bonne nouvelle : dans la majorité des cas, sed est déjà installé.

Sur Linux

Sur Ubuntu, Debian, Mint et la plupart des distributions :

sed --version

Si une version s’affiche, sed est prêt à l’emploi.
Sinon :

sudo apt install sed

Sur macOS

Sed est également présent par défaut sur macOS.

Attention cependant : la version macOS (BSD sed) diffère légèrement de la version GNU utilisée sur Linux. Nous verrons ces différences plus tard, au moment opportun.

Sur Windows

Sed n’est pas natif sous Windows, mais vous pouvez l’utiliser via :

  • WSL (Windows Subsystem for Linux)
  • Git Bash
  • Cygwin

Dans un contexte de développement web, WSL est fortement recommandé.

Votre première commande sed expliquée pas à pas

Commençons avec un fichier très simple que nous nommerons fichier.txt :

Bonjour le monde
Bonjour à tous
Bonjour sed

Commande :

sed 's/Bonjour/Salut/' fichier.txt

Résultat :

Salut le monde
Salut à tous
Salut sed

Décortiquons calmement :

  • La commande : sed
  • L’instruction : 's/Bonjour/Salut/'
  • Le fichier à lire : fichier.txt 

Le s signifie substitute, c’est-à-dire remplacer. Ensuite :

  • Bonjour est le texte recherché
  • Salut est le texte de remplacement

Sed lit chaque ligne une par une, applique la règle, et passe à la suivante.

Pourquoi sed ne modifie pas le fichier par défaut ?

C’est une question que beaucoup de débutants se posent, et c’est très sain.

Sed a été conçu pour être sûr par défaut. Tant que vous n’indiquez pas explicitement que vous voulez modifier un fichier, il se contente d’afficher le résultat.

Cela permet :

  • de tester une commande sans risque
  • de voir immédiatement le résultat
  • d’éviter les catastrophes sur des fichiers sensibles

Quand vous vous sentirez à l’aise, vous apprendrez à modifier directement les fichiers, mais jamais sans comprendre ce que vous faites.

Sed et les flux : une notion clé à comprendre

Sed ne travaille pas uniquement avec des fichiers. Il peut aussi traiter des flux, c’est-à-dire la sortie d’une autre commande.

ls | sed 's/.txt//'

Ici :

  • ls liste les fichiers
  • sed modifie le résultat avant affichage

C’est cette capacité à s’intégrer dans une chaîne de commandes qui rend sed si puissant dans le terminal.

👉 Tout comprendre sur Le symbole Pipe | et commande pipeline.

Maintenant, vous commencez à penser différemment le texte, non plus comme quelque chose à éditer à la main, mais comme quelque chose que l’on peut transformer automatiquement.

Modifier réellement un fichier avec sed

Jusqu’ici, sed affichait simplement le résultat dans le terminal. C’est rassurant, mais tôt ou tard, vous voudrez appliquer la modification directement dans le fichier.

Pour cela, sed propose une option essentielle : -i.

Modifier un fichier en place

Prenons un fichier texte.txt :

Le terminal est puissant
Le terminal est rapide
Le terminal est parfois intimidant

Commande :

sed -i 's/terminal/terminal Linux/' texte.txt

Résultat dans le fichier :

Le terminal Linux est puissant
Le terminal Linux est rapide
Le terminal Linux est parfois intimidant

Cette fois, le fichier est réellement modifié.

Prenez une bonne habitude dès maintenant :
➡️ testez toujours la commande sans -i avant, puis ajoutez -i quand vous êtes sûr du résultat.

Sauvegarde automatique du fichier : Une sécurité supplémentaire

Sed permet aussi de créer une sauvegarde automatique du fichier original.

sed -i.bak 's/terminal/console/' texte.txt

Cela crée :

  • texte.txt (modifié)
  • texte.txt.bak (original)

Quand on débute, cette option est une vraie bouée de sauvetage.

Remplacer toutes les occurrences sur une ligne

Par défaut, sed ne remplace que la première occurrence par ligne.

Exemple :

sed est simple et sed est puissant

Commande :

sed 's/sed/SED/' fichier.txt

Résultat :

SED est simple et sed est puissant

Pour remplacer toutes les occurrences, on ajoute le modificateur g (global).

sed 's/sed/SED/g' fichier.txt

Résultat :

SED est simple et SED est puissant

Cibler des lignes précises

Sed n’est pas obligé de travailler sur tout le fichier. Vous pouvez lui dire exactement quelles lignes modifier.

Modifier une ligne précise

sed '2s/sed/SED/' fichier.txt

Ici :

  • 2 signifie ligne 2
  • s applique la substitution uniquement sur cette ligne

Modifier une plage de lignes

sed '1,3s/sed/SED/' fichier.txt

Sed agit uniquement sur les lignes 1 à 3.

Supprimer des lignes avec sed

Sed ne sert pas qu’à remplacer du texte. Il peut aussi supprimer des lignes entières.

Formation web et informatique - Alban Guillier - Formateur

Des formations informatique pour tous !

Débutant ou curieux ? Apprenez le développement web, le référencement, le webmarketing, la bureautique, à maîtriser vos appareils Apple et bien plus encore…

Formateur indépendant, professionnel du web depuis 2006, je vous accompagne pas à pas et en cours particulier, que vous soyez débutant ou que vous souhaitiez progresser. En visio, à votre rythme, et toujours avec pédagogie.

Découvrez mes formations Qui suis-je ?

Supprimer une ligne précise

sed '3d' fichier.txt

La ligne 3 est supprimée de l’affichage.

Supprimer une ligne contenant un mot

sed '/erreur/d' fichier.txt

Toutes les lignes contenant le mot erreur sont supprimées.

C’est extrêmement pratique pour nettoyer :

  • des logs
  • des fichiers CSV
  • des exports bruts

Ajouter du texte avec sed

Sed peut aussi ajouter du contenu.

Ajouter une ligne après une autre

sed '2a\Nouvelle ligne ajoutée' fichier.txt

La nouvelle ligne est ajoutée après la ligne 2.

Ajouter une ligne avant une autre

sed '2i\Ligne insérée avant' fichier.txt

Ces commandes sont très utiles pour :

  • ajouter des en-têtes
  • insérer des commentaires
  • structurer automatiquement des fichiers

Les expressions régulières sans panique

Quand on parle de sed, le mot expressions régulières fait souvent peur. Pourtant, vous en utilisez déjà sans le savoir.

Exemple simple :

sed 's/[0-9]/X/g' fichier.txt

Cela remplace tous les chiffres par X.

Quelques motifs utiles à connaître :

  • . : n’importe quel caractère
  • * : zéro ou plusieurs fois
  • ^ : début de ligne
  • $ : fin de ligne

Exemple :

sed 's/^Bonjour/Salut/' fichier.txt

Remplace Bonjour uniquement s’il est au début de la ligne.

👉 Spécial débutant : Tout comprendre au RegEx

Sed et les fichiers de configuration

C’est l’un des usages les plus courants en terminal.

PORT=3000
DEBUG=true

Commande :

sed -i 's/DEBUG=true/DEBUG=false/' config.env

En une ligne, vous modifiez une configuration sans ouvrir d’éditeur. Sur un serveur distant, c’est un gain de temps énorme.

Combiner sed avec d’autres commandes

Sed prend toute sa puissance quand il est combiné avec d’autres commandes du terminal.

cat fichier.txt | sed 's/erreur/attention/g'

Ou encore :

grep "ERROR" log.txt | sed 's/ERROR/⚠️/g'

Vous filtrez d’abord, puis vous transformez. C’est cette logique en chaîne qui fait la force du terminal.

👉 Pour aller plus loin : La commande GREP pour rechercher du texte

Erreurs fréquentes quand on débute avec sed

Rassurez-vous, tout le monde fait ces erreurs au début.

  • Oublier les guillemets autour de la commande
  • Modifier un fichier sans sauvegarde
  • Confondre / et \
  • Tester directement avec -i

Chaque erreur est une leçon. Sed demande un peu de rigueur, mais il la rend au centuple.

Sed dans des cas concrets du quotidien

Maintenant que les bases sont solides, voyons comment sed depuis le terminal s’utilise dans des situations réelles. L’objectif ici n’est plus seulement de comprendre, mais de se projeter.

Nettoyer un fichier texte automatiquement

Imaginez un fichier contenant des lignes inutiles, issues d’un copier-coller un peu sale :

Nom: Paul
Age: 32

Nom: Sophie
Age: 28

Nom: Marc
Age: 41

Vous souhaitez supprimer toutes les lignes vides.

Commande :

sed '/^$/d' fichier.txt

Explication simple :

  • ^$ signifie « début de ligne suivi immédiatement de la fin de ligne »
  • donc une ligne vide
  • d supprime ces lignes

Résultat : un fichier propre, sans trous inutiles.

Modifier un CSV sans l’ouvrir

Les fichiers CSV sont omniprésents, mais pénibles à éditer à la main.

Exemple :

id;nom;ville
1;Paul;Paris
2;Sophie;Lyon
3;Marc;Paris

Vous souhaitez remplacer Paris par Paris (75).

sed 's/Paris/Paris (75)/g' data.csv

Encore mieux, si vous voulez enregistrer la modification :

sed -i.bak 's/Paris/Paris (75)/g' data.csv

En quelques secondes, le fichier est modifié, sauvegarde comprise.

Travailler sur des logs serveur

Les logs sont souvent énormes et difficiles à lire.

Exemple :

[ERROR] Connexion refusée
[INFO] Serveur démarré
[ERROR] Accès interdit

Vous voulez supprimer toutes les lignes informatives pour ne garder que les erreurs.

sed '/INFO/d' serveur.log

Ou au contraire, mettre les erreurs en évidence :

sed 's/\[ERROR\]/[!!! ERREUR !!!]/g' serveur.log

Ce genre de commande est extrêmement utile pour analyser rapidement un problème en production.

Modifier automatiquement plusieurs fichiers

Sed peut aussi travailler sur plusieurs fichiers en une seule commande.

sed -i 's/http:/https:/g' *.html

Tous les fichiers HTML du dossier sont modifiés.

C’est typiquement le genre de commande qui fait gagner des heures lors d’une migration de site.

Sed et développement web

Sed est très apprécié dans les workflows de développement.

Exemple : remplacer un nom d’environnement dans un fichier JavaScript.

sed -i 's/ENV_DEV/ENV_PROD/g' config.js

Ou nettoyer des balises HTML générées automatiquement :

sed 's/<[^>]*>//g' page.html

Ici, toutes les balises HTML sont supprimées pour ne garder que le texte.

Sed dans des scripts automatisés

Sed est souvent utilisé dans des scripts Bash.

Exemple simple :

#!/bin/bash
sed -i 's/version=1.0/version=1.1/' app.conf

À chaque exécution du script, la version est mise à jour automatiquement.
C’est discret, fiable, et très efficace.

Pourquoi sed reste incontournable encore aujourd’hui

Même avec des éditeurs modernes, sed garde une place centrale pour plusieurs raisons :

  • Il est présent presque partout
  • Il est rapide
  • Il fonctionne sans interface graphique
  • Il s’intègre parfaitement au terminal
  • Il permet l’automatisation

Quand on commence à le maîtriser, sed devient un réflexe naturel.

Tableau récapitulatif des commandes et paramètres sed

Commande / OptionDescription
sed 's/ancien/nouveau/' fichierRemplace la première occurrence par ligne
sed 's/ancien/nouveau/g' fichierRemplace toutes les occurrences
sed -i 's/ancien/nouveau/' fichierModifie le fichier directement
sed -i.bak 's/ancien/nouveau/' fichierModifie avec sauvegarde
sed '2s/ancien/nouveau/' fichierRemplace sur la ligne 2
sed '1,3s/ancien/nouveau/' fichierRemplace sur les lignes 1 à 3
sed '3d' fichierSupprime la ligne 3
sed '/mot/d' fichierSupprime les lignes contenant un mot
sed '/^$/d' fichierSupprime les lignes vides
sed '2a\texte' fichierAjoute une ligne après
sed '2i\texte' fichierInsère une ligne avant
sed 's/^debut/texte/' fichierRemplace au début de ligne
sed 's/fin$/texte/' fichierRemplace en fin de ligne

Ce tableau peut servir de pense-bête rapide, surtout au début.


Apprendre sed depuis le terminal, ce n’est pas apprendre une commande de plus. C’est changer votre façon d’aborder le texte, les fichiers et l’automatisation. Là où l’on modifiait tout à la main, sed vous apprend à penser en règles, en transformations, en logique.

Au début, sed peut sembler un peu austère, presque intimidant. Puis, progressivement, il devient un allié. Vous tapez une commande, le travail est fait. Sans bruit. Sans erreur. Et souvent, avec un petit sourire en coin quand vous réalisez le temps gagné.

Si vous deviez retenir une seule chose, ce serait celle-ci : sed n’est pas réservé aux experts. Il est parfaitement accessible aux débutants, à condition de prendre le temps de comprendre chaque étape. Et ce temps-là est largement rentabilisé.

La prochaine fois que vous ouvrirez un fichier pour faire une modification répétitive, posez-vous la question : et si sed s’en occupait pour moi ?