Commande sed sous Linux avec exemples

La commande sed sous Linux est un puissant éditeur de flux qui vous permet d'effectuer des transformations de texte de base sur un flux d'entrée (un fichier ou une entrée d'un pipeline). Il est largement utilisé pour rechercher, trouver et remplacer, insérer et supprimer du texte dans des fichiers. Contrairement aux simples éditeurs de texte, sed traite les données dans un pipeline et est particulièrement utile pour automatiser les manipulations de texte dans les scripts shell.

Les principales fonctionnalités de sed incluent la possibilité de :

  • Remplacez le texte dans un fichier à l'aide d'expressions régulières.
  • Supprimez des lignes en fonction de modèles spécifiques.
  • Insérez ou ajoutez du texte à des lignes spécifiques.
  • Transformez ou convertissez du texte en fonction de modèles complexes.

Ce guide fournira des exemples pour démontrer l'utilisation pratique de la commande sed sous Linux, montrant comment elle peut être utilisée pour diverses tâches de traitement de texte.

Syntaxe clé et options de la commande Sed

Avant de se plonger dans des exemples, il est essentiel de comprendre la syntaxe principale de la commande sed :

sed [OPTION]... {script-only-if-no-other-script} [input-file]...

Voici quelques options couramment utilisées :

  • -e : permet l'utilisation de plusieurs commandes.
  • -n : supprime le comportement par défaut lors de l'impression de chaque ligne.
  • -i : modifie les fichiers sur place (soyez prudent car cela modifie le fichier d'origine).

Exemples de base de commande Sed sous Linux

Substitution de texte de base

L’une des utilisations les plus courantes de sed est de remplacer du texte.

echo "Welcome to Linux" | sed 's/Linux/Unix/'

Sortir:

Welcome to Unix

Remplacement global

Par défaut, sed remplace la première occurrence d'une ligne. Pour remplacer toutes les occurrences, utilisez l'indicateur « g ».

echo "Apples are better than apples" | sed 's/apples/oranges/g'

Sortir:

Apples are better than oranges

Suppression de ligne

sed peut également supprimer des lignes en fonction d'un modèle spécifique.

echo -e "apple\norange\nbanana" | sed '/orange/d'

Sortir:

apple
banana

Insertion et ajout de texte

Vous pouvez introduire de nouvelles lignes de texte avant ou après une correspondance de modèle.

echo "Hello" | sed 'i\Good Morning'

Sortir:

Good Morning
Hello

Changer la casse du texte

Avec sed, vous pouvez manipuler la casse du texte à l'aide de la fonction y. Voyons un exemple de conversion de minuscules en majuscules :

echo "hello world" | sed 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/'

Sortir:

HELLO WORLD

Utilisation avancée de la commande Sed sous Linux

Substitution de texte multi-motifs

Pour plusieurs modèles, vous pouvez utiliser -e pour enchaîner diverses commandes de substitution.

echo "Welcome to Linux. I love Linux." | sed -e 's/Linux/Unix/' -e 's/love/adore/'

Sortir:

Welcome to Unix. I adore Linux.

Remplacement de texte conditionnel

Avec sed, il est possible de remplacer du texte en fonction de certaines conditions à l'aide d'adresses.

echo -e "apple\nbanana\ncherry" | sed '/banana/s/$/ - favorite fruit/'

Sortir:

apple
banana - favorite fruit
cherry

Utiliser Sed avec des expressions régulières

Exploitez la puissance des expressions régulières pour faire correspondre des modèles complexes.

echo "Price is $100" | sed 's/$[0-9]*/& (USD)/'

Sortir:

Price is $100 (USD)

Rétro-références pour les remplacements complexes

Les références arrière peuvent être utilisées pour faire référence à des parties du modèle correspondant.

echo "The white cat and black dog" | sed 's/\(white\|black\) \(cat\|dog\)/\2 \1/'

Sortir:

The cat white and dog black

Modification sur place avec l'option -i

L'une des fonctionnalités puissantes de sed est la possibilité de modifier directement des fichiers. Ceci peut être réalisé en utilisant l'option -i, mais sauvegardez toujours le fichier d'origine avant d'apporter des modifications directes.

echo "Original text" > temp.txt
sed -i 's/Original/Modified/' temp.txt
cat temp.txt

Sortir:

Modified text

Conclusion

Comprendre et maîtriser la commande sed peut améliorer considérablement votre capacité à manipuler et traiter des fichiers texte sous Linux. En pratiquant les exemples fournis, vous pouvez apprendre à gérer efficacement les tâches courantes de traitement de texte, à automatiser les tâches d'édition répétitives et à intégrer sed dans votre flux de travail de script. Expérimenter régulièrement différentes options et commandes sed approfondira vos connaissances et vous permettra d'exploiter tout son potentiel. Profitez de la polyvalence et de la puissance que sed apporte à vos tâches de traitement de texte Linux.

Joshua James
Suis-moi
Les derniers articles par Joshua James (tout voir)

Laissez un commentaire