L'édition des fichiers texte et de la sortie du terminal est un travail quotidien pour ceux qui administrent des machines Linux. Les utilitaires de ligne de commande tels que sed permettent à un utilisateur de modifier et de changer le contenu d'un fichier texte directement depuis la fenêtre du terminal.
Dans cet article, nous discuterons de la commande sed en détail, ainsi que de quelques exemples essentiels qui démontrent la puissance de l'utilitaire sed sous Linux.
Qu'est-ce que la commande sed?
La commande sed, qui est un acronyme pour Éditeur de flux, est un outil de ligne de commande qui permet aux utilisateurs Linux d'effectuer des opérations textuelles sur les fichiers et les sorties de terminal. En utilisant sed, les utilisateurs peuvent rechercher et remplacer des mots spécifiques dans un texte, afficher une certaine section de la sortie et modifier des fichiers texte sans les ouvrir.
Les trois opérations de base prises en charge par la commande sed sont:
- Insertion
- Effacement
- Substitution (Rechercher et remplacer)
Les utilisateurs avancés peuvent également implémenter des expressions régulières avec la commande sed pour modifier plus efficacement les flux de texte.
La syntaxe de base de la commande est:
sed [options] [modèle] [chemin de fichier]
...où options sont les différentes fonctionnalités de la commande, schéma est l'expression régulière ou le script que vous souhaitez mettre en correspondance, et chemin du fichier est le chemin d'accès au fichier texte qui contient le texte.
10 exemples de la commande sed Linux
Si vous envisagez de devenir un utilisateur Linux régulier, savoir comment éditer des fichiers, rechercher et remplacer des mots spécifiques et filtrer la sortie du terminal peut vous être utile. Cette section couvre quelques exemples de la commande sed qui vous transformera certainement en un utilisateur expérimenté de Linux.
Nous utiliserons le fichier texte suivant pour la démonstration dans l'article.
Ceci est un fichier texte de démonstration.
C'est un fichier incroyable qui nous aidera tous.
La commande sed est également idéale pour l'édition de flux.
Vous voulez apprendre à utiliser la commande?
Ceci est une autre ligne du fichier.
Ceci est la troisième ligne générale du fichier.
Ce fichier est nommé fichier texte.
Ceci est une pomme.
Ceci est une orange.
1. Afficher une plage de lignes
Les commandes Linux telles que head et tail affichent la première ou les dix dernières lignes d'un fichier texte. Mais que faire si vous souhaitez obtenir le contenu entre deux lignes spécifiques dans un fichier? Dans de telles situations, la commande sed peut s'avérer utile.
Pour sortir le contenu entre les lignes 3 et 5 du fichier textfile.txt:
sed -n '3,5p' textfile.txt
le -n flag empêche sed d'afficher l'espace de motif à la fin de chaque cycle. Vous pouvez également utiliser le --calmer et --silencieux options au lieu de -n. le p l'argument représente imprimer et est utilisé pour afficher les lignes correspondantes à l'utilisateur.
L'exécution de la commande susmentionnée sur le fichier d'exemple produit la sortie suivante.
La commande sed est également idéale pour l'édition de flux.
Vous voulez apprendre à utiliser la commande?
Ceci est une autre ligne du fichier.
Pour sortir l'intégralité du contenu du fichier à l'exception de la plage spécifiée, utilisez le ré drapeau au lieu de p dans la commande:
sed '3,5d' textfile.txt
le ré flag supprime les chaînes correspondantes de la sortie et affiche le reste du contenu.
Ceci est un fichier texte de démonstration.
C'est un fichier incroyable qui nous aidera tous.
Ceci est la troisième ligne générale du fichier.
Ce fichier est nommé fichier texte.
Ceci est une pomme.
Ceci est une orange.
2. Afficher les lignes non consécutives
Pour imprimer des lignes non consécutives entre plusieurs plages dans le fichier:
sed -n -e '1,2p' -e '5,6p' textfile.txt
Production:
Ceci est un fichier texte de démonstration.
C'est un fichier incroyable qui nous aidera tous.
Ceci est une autre ligne du fichier.
Ceci est la troisième ligne générale du fichier.
le -e le drapeau aide à exécution plusieurs actions à l'aide d'une seule commande.
3. Insérer un espace entre les lignes
Si, pour une raison quelconque, vous souhaitez insérer des lignes vides entre chaque ligne d'un fichier texte, utilisez le g argument avec la commande sed par défaut.
sed G textfile.txt
Pour insérer plusieurs lignes vides dans la sortie, passez plusieurs g arguments séparés par point-virgule (;) personnage.
sed 'G; G 'textfile.txt
4. Remplacer un mot dans un fichier texte
Si vous souhaitez remplacer chaque occurrence d'un mot spécifique par un autre mot, utilisez le s et g arguments avec la commande. La syntaxe de base pour remplacer des mots à l'aide de la commande sed est:
sed s / originalword / replaceword / g nom de fichier
En utilisant la syntaxe mentionnée ci-dessus, vous pouvez remplacer le mot étonnante avec super dans le fichier textfile.txt:
sed s / amazing / super / g textfile.txt
le s l'argument dénote substitution et le g La commande est utilisée pour remplacer le contenu correspondant par le contenu de remplacement spécifié.
Pour remplacer la deuxième occurrence du mot par sed, transmettez un nombre au g argument. Dans ce cas:
sed s / amazing / super / g2 textfile.txt
Si vous souhaitez ignorer la casse des caractères lors de la substitution de mots, utilisez gi à la place de g, où je signifie ignorer Cas.
sed s / Amazing / super / gi textfile.txt
En rapport: Vous utilisez Vi? Voici comment ouvrir un fichier, puis enregistrer et quitter
5. Remplacer des mots dans une plage
Vous pouvez également remplacer des mots dans une plage spécifique.
sed '2,5s / amazing / super / g' textfile.txt
6. Effectuer plusieurs substitutions à la fois
Si vous souhaitez effectuer deux ou plusieurs substitutions à la fois, séparez simplement les commandes avec le point-virgule (;) personnage.
sed 's / amazing / super / g; s / commande / utilitaire / gi 'textfile.txt
Le système affichera la sortie suivante.
Ceci est un fichier texte de démonstration.
C'est un super fichier qui nous aidera tous.
L'utilitaire sed est également idéal pour l'édition de flux.
Vous voulez apprendre à utiliser l'utilitaire?
Ceci est une autre ligne du fichier.
Ceci est la troisième ligne générale du fichier.
Ce fichier est nommé fichier texte.
Ceci est une pomme.
Ceci est une orange.
7. Remplacer les mots uniquement si une correspondance est trouvée
Vous pouvez également utiliser la commande sed pour remplacer un mot uniquement si une correspondance donnée est trouvée dans la ligne. Par exemple, pour remplacer le mot une avec un si le mot Orange est présent dans la ligne:
sed -e '/ orange / s / a / an / g' textfile.txt
L'émission de la commande mentionnée ci-dessus produira:
Ceci est un fichier texte de démonstration.
C'est un super fichier qui nous aidera tous.
L'utilitaire sed est également idéal pour l'édition de flux.
Vous voulez apprendre à utiliser l'utilitaire?
Ceci est une autre ligne du fichier.
Ceci est la troisième ligne générale du fichier.
Ce fichier est nommé fichier texte.
Ceci est une pomme.
C'est une orange.
Notez que le mot une dans la ligne C'est une pomme n'a pas été remplacé car le système n'a pas trouvé le mot Orange dedans.
8. Remplacer des mots à l'aide d'expressions régulières
Pour ceux qui savent utiliser les expressions régulières, effectuer des opérations sur des chaînes à l'aide de la commande sed devient beaucoup plus facile. Vous pouvez implémenter des expressions régulières pour améliorer la puissance de la commande.
Pour remplacer toutes les occurrences du mot Étonnante ou alors étonnante avec super:
sed -e 's / [Aa] mazing / super / g' textfile.txt
De même, vous pouvez également utiliser des expressions régulières avancées pour exécuter des opérations spécifiques à l'aide de la commande sed.
9. Pipe sed avec d'autres commandes
Vous pouvez également enchaîner sed avec d'autres commandes Linux. Par exemple, vous pouvez diriger le lspci commande avec sed pour ajouter des espaces vides entre les lignes dans la sortie.
lspci | sed G
Pour remplacer des mots spécifiques dans la sortie du spectacle de route IP commander:
spectacle de route ip | sed s / src / source / g
La commande susmentionnée remplace le mot la source à la place du mot original src.
En rapport: Comment utiliser la commande Rechercher pour rechercher des fichiers sous Linux
10. Modifier et sauvegarder le fichier d'origine
Lorsque vous travaillez avec des fichiers système, il est important de sauvegarder le fichier d'origine tout en apportant des modifications. Cela vous aidera à annuler les modifications au cas où quelque chose se casserait.
Pour sauvegarder le fichier d'origine à l'aide de sed, utilisez le -je flag dans la commande.
sed -i'.backup '' s / amazing / super / g 'textfile.txt
Un nouveau fichier sera créé avec le nom textfile.txt.backup. Vous pouvez vérifier que les deux fichiers sont différents en utilisant le diff commander.
diff textfile.txt textfile.txt.backup
Édition de chaînes sous Linux avec sed
Parfois, lorsque vous travaillez avec des fichiers texte sur le terminal, le formatage et l'édition de la sortie pour une meilleure lisibilité deviennent indispensables. Sed et awk sont des utilitaires de ligne de commande sous Linux qui permettent à un utilisateur de travailler efficacement avec des fichiers texte en divisant les données en lignes séparées.
De nombreux utilisateurs ont du mal à mémoriser les arguments et les indicateurs de la commande sed car il y en a beaucoup qui sont disponibles. Savoir comment obtenir des manuels en ligne de commande pour toute commande Linux vous aidera à vous sortir facilement de telles situations.
Toutes les commandes essentielles pour apprendre les commandes Linux à partir de la ligne de commande
Lire la suite
- Linux
- Éditeur de texte
- Terminal
- Invite de commandes
Deepesh est l'éditeur junior pour Linux chez MUO. Il écrit du contenu informatif sur Internet depuis plus de 3 ans. Pendant son temps libre, il aime écrire, écouter de la musique et jouer de la guitare.
Abonnez-vous à notre newsletter
Rejoignez notre newsletter pour des conseils techniques, des critiques, des ebooks gratuits et des offres exclusives!
Un pas de plus…!
Veuillez confirmer votre adresse e-mail dans l'e-mail que nous venons de vous envoyer.