GNU/Linux >> Tutoriels Linux >  >> Linux

Utilisation de la commande Linux sed avec des exemples

Sed, abréviation de Stream EDitor, est une commande utilisée pour effectuer des transformations et des manipulations de texte sur un fichier. Certaines de ces transformations incluent la recherche et le remplacement de texte. Avec la commande Linux sed, vous pouvez manipuler et éditer des fichiers texte sans même les ouvrir. Dans ce didacticiel, vous apprendrez à manipuler des fichiers texte à l'aide de la commande sed.

Syntaxe de la commande Linux sed

$ sed  {OPTIONS} filename

Dans ce tutoriel, nous utiliserons linuxgeek.txt file comme notre fichier de référence.

# cat linuxgeek.txt

Sortie

1. Substituer ou remplacer une chaîne

Dans la plupart des cas, la commande sed est utilisée pour remplacer des chaînes de texte.

La commande ci-dessous remplace ‘Linux ‘ avec ‘Unix ‘.

# sed 's/Linux/Unix/' linuxgeek.txt
  • Les s dans la commande se trouve l'indicateur de remplacement.
  • Le / sont les délimiteurs
  • Linux est le terme de recherche
  • unix est le terme de remplacement

Par défaut, la commande sed remplace uniquement la première occurrence d'une ligne . Les occurrences suivantes ne seront pas substituées ou remplacées.

Sortie

2. Substituer ou remplacer la nième occurrence dans une ligne

Si vous souhaitez remplacer la deuxième occurrence de chaîne dans une ligne, utilisez le /2 drapeau comme indiqué.

# sed 's/Linux/Unix/2' linuxgeek.txt

Sortie

3. Substituer ou remplacer toutes les occurrences du motif dans un fichier

Pour remplacer toutes les occurrences du motif de recherche dans le fichier, utilisez le /g drapeau. Le /g est le remplacement global.

# sed 's/Linux/Unix/g' linuxgeek.txt

Sortie

4. Substituer ou remplacer toutes les occurrences d'une chaîne dans une ligne spécifique uniquement

Si vous souhaitez remplacer toutes les occurrences d'une chaîne dans une ligne spécifique, par exemple dans la ligne 2, utilisez la syntaxe ci-dessous

# sed '2 s/Linux/Unix/g' linuxgeek.txt

Sortie

5. Substituer ou remplacer une chaîne dans une plage de lignes spécifique

Si vous souhaitez spécifier la plage de lignes où le remplacement de chaîne se produira, utilisez l'exemple ci-dessous. L'exemple indique que le remplacement doit se produire à partir des lignes 1 à 3

# sed '1,3 s/Linux/Unix/g' linuxgeek.txt

Sortie

De plus, vous pouvez remplacer le texte d'une ligne spécifique à la fin du fichier comme indiqué

# sed '2,$ s/Linux/Unix/g' linuxgeek.txt

Ce que fait la commande, c'est qu'elle remplace toutes les occurrences de la 2ème ligne à la dernière ligne du fichier.

Sortie

6. Entre parenthèses le premier caractère de chaque mot

L'exemple ci-dessous montre comment vous pouvez mettre des parenthèses sur chaque premier caractère d'un mot dans une ligne.


$ echo "Hey Guys, Welcome To Linux Operating System" | sed 's/\(\b[A-Z]\)/\(\1\)/g'

Sortie

7. Supprimer des lignes d'un fichier

Vous pouvez également utiliser la commande linux sed pour supprimer des lignes dans un fichier.

Exemples

Syntaxe :


$ sed 'nd' filename.txt

Pour supprimer la 3ème ligne du fichier exécutez

$ sed '3d' linuxgeek.txt

Sortie

Pour supprimer une plage de lignes, disons de la ligne 3 à la ligne 5 , exécutez la commande :

$ sed '3,5d' linuxgeek.txt

Sortie


Linux
  1. Commande Linux wc avec exemples

  2. Commande de tri Linux avec exemples

  3. La commande Linux Sed :utilisation et exemples

  4. Commande Linux Tee avec exemples

  5. Commande JQ sous Linux avec exemples

Commande de date sous Linux avec des exemples d'utilisation

Commande Diff sous Linux avec exemples

Commande de CD Linux avec exemples

Commande IP Linux avec exemples d'utilisation

Commande IP Linux avec exemples

Utilisation de la commande Linux mv avec des exemples