accueil > Traitement et recherche de texte > sed

sed -n : Afficher uniquement les lignes spécifiées

sed est un éditeur de flux utilisé pour éditer des fichiers texte ou des flux de texte transmis via des pipes. L'option '-n' supprime la sortie par défaut de sed (l'impression du contenu de l'espace de modèle) et n'imprime que les lignes pour lesquelles la commande 'p' (print) est explicitement spécifiée, ce qui la rend très utile pour extraire des lignes spécifiques. Elle fonctionne de manière similaire à grep, mais permet des transformations et des extractions de texte plus complexes.

Aperçu

La commande sed est un outil puissant pour l'édition de flux de texte. L'option '-n' désactive la sortie par défaut de toutes les lignes de sed, permettant aux utilisateurs de sélectionner et d'imprimer uniquement les lignes souhaitées via des commandes spécifiques comme 'p' (print). Cela permet un traitement de texte précis dans diverses situations, telles que l'analyse de fichiers journaux ou l'extraction de données spécifiques.

Caractéristiques principales

  • Suppression de la sortie par défaut
  • Impression sélective de lignes spécifiques
  • Correspondance de motifs basée sur les expressions régulières
  • Utilisation de fichiers de script possible

Options principales

La commande sed offre diverses options, mais ici nous expliquons les commandes couramment utilisées avec l'option '-n'.

Contrôle de sortie et correspondance de motifs

Commande générée :

Essayez de combiner les commandes.

Description:

`sed` Exécute la commande.

Essayez d'exécuter virtuellement les commandes avec l'IA en combinant les options ci-dessus.

Exemples d'utilisation

Divers exemples de traitement de texte utilisant sed -n.

Afficher une ligne spécifique

sed -n '5p' filename.txt

Affiche uniquement la 5ème ligne du fichier.

Afficher une plage de lignes spécifique

sed -n '10,20p' filename.txt

Affiche les lignes de la 10ème à la 20ème du fichier.

Afficher les lignes correspondant à une expression régulière

sed -n '/error/p' logfile.log

Affiche uniquement les lignes contenant la chaîne 'error'.

Substituer une ligne correspondante puis afficher

sed -n 's/old/new/p' filename.txt

Affiche uniquement les lignes où 'old' est substitué par 'new'.

Afficher uniquement la première ligne correspondante

sed -n '/pattern/{p;q}' filename.txt

Affiche la première ligne correspondant au motif et termine sed.

Supprimer les lignes vides puis afficher

sed -n '/^$/!p' filename.txt

Affiche uniquement les lignes non vides du fichier.

Conseils et précautions

Conseils utiles et points à considérer lors de l'utilisation de sed -n.

Différences avec grep

  • grep affiche simplement les lignes correspondant au motif, tandis que sed -n peut effectuer des modifications supplémentaires (comme la substitution) sur les lignes correspondantes avant de les afficher.
  • sed -n peut gérer des conditions plus complexes que grep (par exemple, faire correspondre un motif uniquement dans une plage de lignes spécifique).

Considérations de performance

Lors du traitement de fichiers volumineux, sed lit et traite les fichiers ligne par ligne, ce qui le rend efficace en mémoire. Cependant, des expressions régulières complexes peuvent affecter les performances.

Motifs fréquemment utilisés

  • 'p': Afficher la ligne correspondante
  • 's/regex/replacement/': Substituer la partie correspondante
  • 'd': Supprimer la ligne correspondante (cependant, lorsqu'il est utilisé avec '-n', 'd' supprime la ligne de l'espace de modèle, donc rien ne sera affiché s'il n'y a pas de commande 'p')

Commandes de la même catégorie