GNU/Linux >> Tutoriels Linux >  >> Linux

Extraire du texte entre deux lignes spécifiques ?

Comment puis-je obtenir la partie de la sortie d'une commande entre deux lignes spécifiques ? Un exemple factice :

Commande :

git for-each-ref --sort='*authordate' --format='%(tag)' refs/tags | grep -v '^$'

Sortie :

0.1.0
0.2.0
1.0.0
1.0.1
1.0.2
1.1.0
1.2.0
1.2.1
1.3.0
1.4.0
1.4.1

Je souhaite obtenir la partie de cette sortie, entre deux lignes spécifiques (non basées sur le numéro de ligne, basées sur le contenu) :

0.1.0
0.2.0
1.0.0
1.0.1
1.0.2

Réponse acceptée :

Vous pouvez diriger la sortie vers awk :

$ ... | awk '/0\.1\.0/,/1\.0\.2/'
0.1.0
0.2.0
1.0.0
1.0.1
1.0.2

Linux
  1. Explication des différences entre les éditeurs de texte Vi et Vim

  2. Imprimer des lignes entre (et en excluant) deux motifs ?

  3. Imprimer des lignes entre (et y compris) deux motifs ?

  4. Comment créer un tuyau bidirectionnel entre deux programmes ?

  5. Comment extraire/modifier des lignes dans un fichier texte dont les données sont séparées en champs ?

Extraire la valeur entre deux modèles de recherche sur la même ligne ?

Lignes communes entre deux fichiers ?

Rechercher et remplacer du texte dans un fichier entre une plage de lignes à l'aide de sed

Supprimez efficacement les deux dernières lignes d'un fichier texte extrêmement volumineux

Extraire des fichiers spécifiques dans une archive tar à l'aide d'un caractère générique

Différence d'espace entre deux fichiers sous Linux