May 16, 2025
Chaimaa C.
10minutes de lecture
La commande sed de Linux vous permet de trouver, remplacer, insérer et supprimer des lignes dans un fichier sans l’ouvrir à l’aide d’un éditeur de texte. Adaptée aux entrées par pipeline et à divers formats de fichiers, cette commande Linux utilise également des expressions régulières ou regex, ce qui vous permet de rechercher et de manipuler des motifs complexes.
Avec ses différents cas d’utilisation, comprendre comment utiliser sed peut aider les administrateurs système à gérer efficacement leurs serveurs privés virtuels Linux.
Cet article explique la syntaxe générale, les options et les sous-commandes de la commande sed de Linux. Vous apprendrez également divers exemples de sed et des cas d’utilisation pour la gestion des SDV Linux.

Voici la syntaxe générale de la commande sed :
sed options 'script' nom_de_fichier
Pour modifier le comportement des commandes sed, ajoutez les options de ligne de commande suivantes :
Le script contient la sous-commande, le motif de recherche, la chaîne de remplacement et l’indicateur. Ces éléments sont encapsulés dans des apostrophes et séparés par un délimiteur, tel qu’une barre oblique (/), une barre oblique inverse (\) ou un tuyau (|).
Leur ordre peut varier en fonction de la sous-commande. Par exemple, la commande s ou substitute remplace une expression régulière par une autre chaîne. Voici la syntaxe :
's/regex_pattern/new_pattern/flags'
Pour modifier la substitution de motifs, utilisez les flags suivants :
La sous-commande s prend en charge plusieurs flags. Par exemple, ajoutez le flag gi pour activer une substitution globale sensible à la casse
Le paquetage de l’éditeur de flux Linux est préinstallé dans la plupart des distributions. Si votre système ne dispose pas de cet outil, suivez les étapes suivantes pour l’installer :
Important ! Dans ce tutoriel, notre VPS est sous Ubuntu 22.04. Si vous utilisez une autre distribution ou version, les commandes peuvent être différentes.
sudo apt-get update
sudo apt-get install sed
sed --version


Dans les sections suivantes, nous présenterons 10 exemples de commandes de l’éditeur de flux pour vous aider à comprendre ses fonctions.
Important ! Toutes les commandes ci-dessous ne modifient pas le fichier original. Pour appliquer directement les modifications, ajoutez l’option -i.
La commande sed est couramment utilisée pour remplacer du texte. Cet outil recherche le motif spécifié dans un fichier et le remplace par la chaîne souhaitée.
Pour ce faire, utilisez la commande s avec la chaîne que vous souhaitez remplacer et son remplaçant. Voici la syntaxe :
sed 's/old_string/new_string/' samplefile.txt
Remplacez les caractères de remplacement par la valeur réelle. Par exemple, cette commande remplace le mot “images” par “photos” dans le fichier scenery.txt :
sed 's/images/photos/' scenery.txt

Si votre chaîne contient le symbole de la barre oblique, utilisez un autre délimiteur, comme une barre oblique inverse (\) ou un tuyau (|).
Si un motif apparaît plusieurs fois dans une ligne, entrez la syntaxe de la commande suivante pour remplacer un motif spécifique :
sed 's/old_string/new_string/#' samplefile.txt
Remplacez le symbole du dièse (#) par le numéro de séquence du motif. Par exemple, cette commande remplace la première occurrence du mot “music” par “song” dans une ligne du fichier playlist.txt :
sed 's/music/song/1' playlist.txt

Par défaut, la commande sed ne remplace que la première occurrence de la chaîne spécifiée et passe à la ligne d’entrée suivante. Pour remplacer tous les motifs correspondants sur la même ligne, ajoutez le flag g. Voici à quoi ressemble le script sed :
sed 's/old_string/new_string/g' samplefile.txt
Par exemple, exécutez la commande suivante pour remplacer toutes les occurrences contenant “eagle” par “falcon” dans une ligne du fichier animals.txt :
sed 's/eagle/falcon/g' animals.txt

Au lieu de remplacer tous les motifs à l’intérieur d’une même ligne, combinez le nombre et le flag g pour remplacer les occurrences à partir d’une ligne spécifique. Voici le script sed :
sed 's/old_string/new_string/#g' samplefile.txt
Par exemple, la commande ci-dessous remplace le mot “pisces” par “aquarius” de la deuxième à la dernière occurrence dans le fichier astrology.txt.
sed 's/pisces/aquarius/2g' astrology.txt

Pour imprimer le premier caractère de chaque mot entre parenthèses, utilisez le script suivant :
echo "desired_sentence" | sed -E 's/(\b\w)/(\1)/g'
Par exemple, pour afficher le premier caractère de “An example of the sed command” entre parenthèses, entrez :
echo "An example of the sed command" | sed -E 's/(\b\w)/(\1)/g'

Pour mettre entre parenthèses le premier caractère de chaque mot d’un fichier, omettez la commande echo et ajoutez le document d’entrée à la fin.
Pour remplacer la chaîne sur une nième ligne, ajoutez son numéro de séquence avant s comme suit :
sed '#s/old_string/new_string/' samplefile.txt
Par exemple, entrez ce qui suit pour remplacer le mot “cake” par “bread” à la deuxième ligne du fichier foods.txt :
sed '2s/gâteau/pain/' foods.txt

Pour imprimer les lignes que votre commande sed a modifiées en tant que sortie supplémentaire, utilisez l’option p ou print. Voici la syntaxe générale :
sed 's/old_string/new_string/p' samplefile.txt
Par exemple, exécutez la commande suivante pour remplacer “phones” par “tablets” dans le fichier gadgets.txt et imprimez les résultats :
sed 's/phones/tablets/p' gadgets.txt

Le terminal affichera la chaîne originale si la ligne ne contient pas le motif de recherche et n’est pas substituée.
La commande sed permet de modifier uniquement les numéros de ligne spécifiés dans le script en ajoutant la plage. Voici la syntaxe :
sed '#,# s/old_string/new_string/' samplefile.txt
Par exemple, la commande ci-dessous remplace “germany” situé à la troisième, quatrième et cinquième ligne du fichier countries.txt par “france” :
sed '3,5 s/allemagne/france/' countries.txt

Par défaut, l’éditeur de flux affiche l’intégralité du contenu du fichier. Pour simplifier la sortie, combinez l’option -n avec la commande p pour n’afficher que les lignes correspondantes. Voici la syntaxe générale :
sed -n 's/old_string/new_string/p' samplefile.txt
Par exemple, pour remplacer la troisième occurrence de “green” par “blue” dans une ligne du fichier colors.txt et imprimer les lignes modifiées dans la fenêtre du terminal, entrez :
sed -n 's/green/blue/3p' colors.txt

La commande d ou delete vous permet de supprimer des lignes d’un fichier sans éditeur de texte. Par exemple, utilisez la syntaxe suivante pour supprimer un numéro de ligne particulier :
sed '#d' samplefile.txt
Remplacez le symbole du dièse (#) par le numéro de la ligne à supprimer. Par exemple, exécutez cette commande pour supprimer la première ligne du fichier cities.txt :
sed '1d' cities.txt
En outre, vous pouvez supprimer toutes les lignes d’une plage spécifique à l’aide de la commande sed :
sed '#,#d' samplefile.txt
Remplacez les symboles dièse (#) par les numéros de ligne de début et de fin. Par exemple, entrez ce qui suit pour supprimer la première à la troisième ligne du fichier cars.txt :
sed '1,3d' cars.txt
Vous pouvez également supprimer la dernière ligne d’un fichier en combinant la sous-commande d et le signe dollar ($), comme suit.
sed '$d' samplefile.txt
Pour supprimer un numéro de ligne spécifique en commençant par le dernier, utilisez la syntaxe suivante :
sed '#,$d' samplefile.txt
Par exemple, cette commande supprimera l’avant-dernière ligne du fichier books.txt :
sed '2,$d' books.txt
Outre la suppression de lignes, cette commande permet de supprimer une occurrence particulière dans un fichier. Pour ce faire, spécifiez le motif regex dans votre script, comme dans la syntaxe suivante :
sed '/pattern/d' samplefile.txt
Par exemple, exécutez cette commande pour supprimer le motif “oabo” du fichier filestrings.txt :
sed '/oabo/d' filestrings.txt
Dans cette section, nous expliquerons comment utiliser les commandes sed pour différents cas d’ utilisation dans la gestion des serveurs.
Utiliser sed pour le traitement par lot de fichiers
En règle générale, il existe deux façons d’éditer des fichiers en masse à l’aide de la commande sed.
Tout d’abord, spécifiez les fichiers individuellement. Avec cette méthode, vous listerez tous les fichiers d’entrée que vous souhaitez remplacer à la fin de votre commande, en les séparant par des espaces. Voici la syntaxe :
sed 's/old_string/new_string/g' filename1.txt filename2.txt
La commande recherchera et remplacera simultanément toutes les occurrences de old_string dans les deux fichiers texte.
Deuxièmement, vous pouvez les analyser à l’aide de la commande find. Cette méthode permet de rechercher automatiquement dans un répertoire les fichiers contenant le motif spécifié. Voici la syntaxe :
find /directory/path/file -type f -exec sed -i 's/old_string/new_string/g' {} \ ;Remplacez /directory/path/file par le répertoire contenant les fichiers à traiter.
Si vous utilisez la deuxième méthode, créez un fichier de sauvegarde pour faciliter la restauration en cas de substitutions accidentelles. Vous pouvez également omettre l’option -i pour désactiver l’édition sur place et conserver le fichier d’origine intact.
Utiliser sed pour l’analyse de fichiers journaux (logs)
Outre la modification des motifs, la commande sed de Linux est également utile pour l’analyse des journaux. Elle vous permet de rechercher facilement un motif spécifique dans le fichier journal et d’extraire les résultats pour faciliter les diagnostics.
Pour ce faire, ajoutez le symbole > afin d’afficher les motifs correspondants dans un fichier texte. Bien que la commande diffère selon l’usage que vous en faites, la syntaxe de base reste la suivante :
sed -n 's/pattern/p' logfile.log > extracted_data.txt
Modifiez le motif de l’expression rationnelle en fonction des données que vous souhaitez rechercher, comme l’adresse IP, le message d’erreur ou l’horodatage. Par exemple, utilisez ce script pour exporter les erreurs enregistrées :
sed -n 's/Erreur : \(.*\)/\1/p' logfile.log > error_logs.txt
Utiliser sed pour manipuler des balises HTML/XML
La commande sed de Linux vous permet de remplacer facilement des chaînes de caractères dans le code. Par exemple, vous pouvez rechercher des balises HTML ou XML spécifiques et remplacer leurs attributs à l’aide de la commande de substitution. Voici la syntaxe :
sed 's/<tag attribute="old_pattern">/<tag attribute="new_pattern"/' file.html
La commande varie en fonction des balises et des attributs que vous souhaitez modifier. Par exemple, cette commande sed change les attributs de couleur de toutes les balises d’en-tête en noir :
sed 's/\(<h[1-6].*color:\) [^ ;]*/\1 black/g' webpage.html
La commande recherche le modèle de code HTML suivant et remplace la valeur de la couleur par la nouvelle chaîne :
<h1 style="color : value ;">Tête 1</h1>
Utiliser sed avec des fichiers externes
Les opérations complexes de la commande sed peuvent contenir plusieurs scripts. Bien qu’il soit possible de les ajouter dans une seule commande à l’aide de l’option -e, celle-ci est difficile à écrire et sujette aux erreurs.
Vous pouvez également créer un fichier SED externe contenant plusieurs scripts. Voici la marche à suivre :
nano script.sed
s/ancien_motif1/nouveau_motif1/g
/old_pattern2/d
sed -f script.sed fichier_destination.txt
Utiliser sed pour les backreferences en expressions régulières
Les rétro-références (Backreferences) vous permettent de vous référer à des motifs ayant déjà fait l’objet d’une correspondance et de les réutiliser dans la nouvelle chaîne. Il n’est donc pas nécessaire de réécrire le motif de la regex, ce qui simplifie le script.
Le motif utilisé comme référence de la commande sed est appelé groupe de capture. Encapsulé dans des parenthèses, il comprend également des barres obliques pour les expressions régulières étendues.
Pour faire référence au groupe de capture, utilisez une barre oblique inverse (\) et un nombre indiquant l’ordre des motifs. Par exemple, la référence arrière \1 réutilisera le premier motif de regex capturé.
Les backreferences sont utiles pour remplacer et réorganiser les motifs. Par exemple, cette commande sed les utilise pour réorganiser les noms et les prénoms :
echo "Doe, John" | sed 's/\N(.*\N), \N(.*\N)/\N2 \N/'
Les deux modèles de regex \(.*\) capturent Doe et John, en les définissant comme référence. Étant donné que la nouvelle chaîne commence par la deuxième référence arrière, la nouvelle valeur sera John Doe.


L’éditeur de flux ou la commande sed sous Linux est un outil qui permet de trouver et de modifier un motif dans un fichier à l’aide d’expressions régulières. Sa syntaxe comprend la commande sed, les options, le script et le fichier cible.
Les options de la ligne de commande sed modifient le comportement de l’outil, tandis que le script détermine la manière dont l’outil modifie le motif regex correspondant. Le script contient une sous-commande, des flags et les motifs de l’expression rationnelle, chacun étant séparé par un délimiteur tel qu’une barre oblique (/).
Pour utiliser la commande sed sous Linux, ouvrez des applications de ligne de commande telles que Terminal, un client SSH ou le Browser Terminal d’Hostinger. Pour trouver et remplacer un motif, utilisez la sous-commande s. La sous-commande d permet quant à elle de supprimer des lignes ou des chaînes de caractères.
La commande sed de Linux est également utile pour l’analyse des journaux, la modification des balises et le traitement des fichiers en masse. En outre, elle prend en charge les références inverses (regex) et vous permet d’utiliser un fichier script pour exécuter plusieurs commandes Linux simultanément.
Cette section répond aux questions les plus fréquemment posées sur la commande sed.
Sed et grep sont tous deux des outils de traitement de texte sous Linux. Cependant, grep ne prend pas en charge les commandes de transformation de texte ou de manipulation de ligne comme la substitution. Il est principalement utilisé pour trouver des motifs de texte particuliers dans des fichiers volumineux et pour imprimer la sortie.
Dans le script Bash, la commande sed a trois utilisations principales : l’impression vers stdout, la suppression d’un texte et le remplacement d’une chaîne de caractères spécifique. Le programme détermine la ligne qu’il va traiter à partir de la plage d’adresses spécifiée.
Une variable est un caractère auquel nous attribuons une valeur, ce qui permet une meilleure lisibilité lorsqu’il est ajouté à une commande sed. Il peut s’agir d’un nombre, d’un caractère, d’un nom de fichier ou d’un périphérique. L’interpréteur de commandes développe les variables. Par exemple, si la chaîne contient une barre oblique (/), utilisez un autre délimiteur, tel qu’un tuyau (|).
La commande sed permet d’effectuer des modifications de texte de base, telles que le remplacement, la suppression et l’insertion d’un motif dans un fichier d’entrée. La commande awk, quant à elle, est utilisée pour des tâches complexes telles que l’extraction de données, la manipulation de texte et les calculs mathématiques. Elle prend également en charge des instructions de programmation telles que if/else et do/while.
Tout le contenu des tutoriels de ce site est soumis aux normes éditoriales et aux valeurs rigoureuses de Hostinger.