GNU/Linux >> Tutoriels Linux >  >> Linux

20 exemples de commandes Sed (éditeur de flux) pour les utilisateurs Linux

Commande Sed ou éditeur de flux est un utilitaire très puissant offert par les systèmes Linux/Unix. Il est principalement utilisé pour la substitution de texte , rechercher et remplacer, mais il peut également effectuer d'autres manipulations de texte comme l'insertion , suppression , rechercher etc. Avec SED, nous pouvons éditer des fichiers complets sans avoir à les ouvrir. Sed prend également en charge l'utilisation d'expressions régulières, ce qui fait de sed un outil de manipulation de test encore plus puissant. .

Dans cet article, nous allons apprendre à utiliser la commande SED à l'aide de quelques exemples. La syntaxe de base pour utiliser la commande sed est,

sed OPTIONS… [SCRIPT] [INPUTFILE…]

Voyons maintenant quelques exemples.

Exemple :1) Affichage du texte partiel d'un fichier

Avec sed, nous ne pouvons voir qu'une partie d'un fichier plutôt que de voir le fichier entier. Pour voir certaines lignes du fichier, utilisez la commande suivante,

[[email protected] ~]$ sed -n 22,29p testfile.txt

ici, l'option 'n' supprime l'impression de tout le fichier et l'option 'p' n'imprimera que les lignes de 22 à 29.

Exemple :2) Afficher tout sauf certaines lignes

Pour afficher tout le contenu d'un fichier à l'exception d'une partie, utilisez la commande suivante,

[[email protected] ~]$ sed 22,29d testfile.txt

L'option 'd' supprimera les lignes mentionnées de la sortie.

Exemple :3) Afficher toutes les 3èmes lignes en commençant par la Nième ligne

Affichez le contenu de chaque 3ème ligne en commençant par la ligne numéro 2 ou toute autre ligne, utilisez la commande suivante

[[email protected] ~]$ sed -n '2~3p' file.txt

Exemple :4 ) Suppression d'une ligne à l'aide de la commande sed

Pour supprimer une ligne avec sed d'un fichier, utilisez la commande suivante,

[[email protected] ~]$ sed Nd testfile.txt

où 'N' est le numéro de ligne et l'option 'd' supprimera le numéro de ligne mentionné. Pour supprimer la dernière ligne du fichier, utilisez

[[email protected] ~]$ sed $d testfile.txt

Exemple :5) Supprimer une plage de lignes

Pour supprimer une plage de lignes du fichier, exécutez

[[email protected] ~]$ sed '29,34d' testfile.txt

Cela supprimera les lignes 29 à 34 du fichier testfile.txt.

Exemple :6) Suppression de lignes autres que celles mentionnées

Pour supprimer des lignes autres que les lignes mentionnées d'un fichier, nous utiliserons '!'

[[email protected] ~]$ sed '29,34!d' testfile.txt

ici l'option '!' est utilisée comme non, elle inversera donc la condition, c'est-à-dire qu'elle ne supprimera pas les lignes mentionnées. Toutes les lignes autres 29-34 seront supprimées des fichiers testfile.txt.

Exemple :7) Ajout de lignes/espaces vides

Pour ajouter une ligne vide après chaque ligne non vide, nous utiliserons l'option 'G',

[[email protected] ~]$ sed G testfile.txt

Exemple :8) Rechercher et remplacer une chaîne à l'aide de sed

Pour rechercher et remplacer une chaîne à partir du fichier, nous utiliserons l'exemple suivant,

[[email protected] ~]$ sed 's/danger/safety/' testfile.txt

ici, l'option 's' recherchera le mot 'danger' et le remplacera par 'sécurité' sur chaque ligne pour la première occurrence uniquement.

Exemple :9) Rechercher et remplacer une chaîne dans un fichier entier à l'aide de sed

Pour remplacer complètement le mot du fichier, nous utiliserons l'option "g" par "s",

[[email protected] ~]$ sed 's/danger/safety/g' testfile.txt

Exemple :10) Remplacer la nième occurrence du modèle de chaîne

Nous pouvons également substituer une chaîne à la nième occurrence d'un fichier. Comme remplacer « danger » par « sécurité » uniquement à la deuxième occurrence,

[[email protected] ~]$ sed ‘s/danger/safety/2’ testfile.txt

Pour remplacer "danger" à la 2ème occurrence de chaque ligne du fichier entier, utilisez

[[email protected] ~]$ sed 's/danger/safety/2g' testfile.txt

Exemple :11) Remplacer une chaîne sur une ligne particulière

Pour remplacer une chaîne uniquement à partir d'une ligne particulière, utilisez

[[email protected] ~]$ sed '4 s/danger/safety/' testfile.txt

Cela ne remplacera que la chaîne de la 4ème ligne du fichier. On peut également mentionner une plage de lignes au lieu d'une seule ligne,

[[email protected] ~]$  sed '4,9 s/danger/safety/' testfile.txt

Exemple :12) Ajouter une ligne après/avant la recherche correspondante

Pour ajouter une nouvelle ligne avec du contenu après chaque correspondance de modèle, utilisez l'option 'a' ,

[[email protected] ~]$ sed '/danger/a "This is new line with text after match"' testfile.txt

Pour ajouter une nouvelle ligne avec du contenu avant chaque correspondance de motif, utilisez l'option "i",

[[email protected] ~]$ sed '/danger/i "This is new line with text before match" ' testfile.txt

Exemple :13) Changer une ligne entière avec un motif correspondant

Pour changer une ligne entière en une nouvelle ligne lorsqu'un modèle de recherche correspond, nous devons utiliser l'option 'c' avec sed,

[[email protected] ~]$ sed '/danger/c "This will be the new line" ' testfile.txt

Ainsi, lorsque le motif correspond à "danger", toute la ligne sera remplacée par la ligne mentionnée.

Options avancées avec sed

Jusqu'à présent, nous n'utilisions que des expressions simples avec sed, nous allons maintenant discuter de certaines utilisations avancées de sed avec regex,

Exemple :14) Exécution de plusieurs commandes sed

Si nous devons exécuter plusieurs expressions sed, nous pouvons utiliser l'option 'e' pour enchaîner les commandes sed,

[[email protected] ~]$  sed -e 's/danger/safety/g' -e 's/hate/love/' testfile.txt

Exemple :15) Faire une copie de sauvegarde avant d'éditer un fichier

Pour créer une copie de sauvegarde d'un fichier avant de le modifier, utilisez l'option "-i.bak",

[[email protected] ~]$ sed -i.bak -e 's/danger/safety/g'  testfile.txt

Cela créera une copie de sauvegarde du fichier avec l'extension .bak. Vous pouvez également utiliser une autre extension si vous le souhaitez.

Exemple :16) Supprimer une ligne de fichier commençant par et finissant par un motif

Pour supprimer une ligne commençant par une chaîne particulière et se terminant par une autre chaîne, utilisez

[[email protected] ~]$ sed -e 's/^danger.*stops$//g' testfile.txt

Cela supprimera la ligne avec 'danger' au début et 'stops' à la fin et il peut y avoir n'importe quel nombre de mots entre , '.*' définit cette partie.

Exemple :17) Ajout de lignes

Pour ajouter du contenu avant chaque ligne avec sed ®ex, utilisez

[[email protected] ~]$ sed -e 's/.*/testing sed &/' testfile.txt

Désormais, chaque ligne sera précédée de "testing sed".

Exemple :18) Suppression de toutes les lignes commentées et des lignes vides

Pour supprimer toutes les lignes commentées, c'est-à-dire les lignes avec # et toutes les lignes vides, utilisez

[[email protected] ~]$ sed -e 's/#.*//;/^$/d' testfile.txt

Pour supprimer uniquement les lignes commentées, utilisez

[[email protected] ~]$ sed -e 's/#.*//' testfile.txt

Exemple :19) Obtenir la liste de tous les noms d'utilisateur depuis /etc/passwd

Pour obtenir la liste de tous les noms d'utilisateur à partir du fichier /etc/passwd, utilisez

[[email protected] ~]$  sed 's/\([^:]*\).*/\1/' /etc/passwd

une liste complète de tous les noms d'utilisateur sera générée à l'écran en sortie.

Exemple :20) Empêcher l'écrasement des liens système avec la commande sed

La commande 'sed -i' est connue pour supprimer les liens système et créer uniquement des fichiers normaux à la place du fichier de lien. Donc, pour éviter une telle situation et empêcher 'sed -i ‘ de détruire les liens, utilisez ‘–follow-symklinks ' avec la commande en cours d'exécution.

Supposons que je veuille désactiver SELinux sur CentOS ou RHEL Severs

[[email protected] ~]# sed -i --follow-symlinks 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/sysconfig/selinux

Ce sont quelques exemples pour montrer sed, nous pouvons utiliser ces références pour les utiliser au besoin. Si vous avez des questions concernant cet article ou tout autre article, partagez-les avec nous.

Lire aussi  : 14 exemples de commandes SCP pour transférer des fichiers en toute sécurité sous Linux


Linux
  1. 8 conseils pour la ligne de commande Linux

  2. Tutoriel de commande pour les utilisateurs Linux pour les débutants (avec exemples)

  3. Introduction à sed (Stream Editor) :Exemples utiles de commandes sed

  4. 10 Exemples de commande Sed (éditeur de flux)

  5. Exemples de commandes sed sous Linux

Tutoriel de commande Linux OD pour les débutants (6 exemples)

Tutoriel de commande Linux w pour débutants (5 exemples)

Tutoriel de commande Linux ss pour les débutants (8 exemples)

Commande de localisation Linux pour les débutants (8 exemples)

Micro - Un éditeur de texte basé sur la ligne de commande pour Linux

Utilisation de la commande Linux sed avec des exemples