GNU/Linux >> Tutoriels Linux >  >> Linux

Comment puis-je obtenir des mots entre les deux premières instances de texte/motif ?

En voici une dans awk :

$ awk '/^=+$/{f=!f;if(f==1)next;else if(f==0)exit}f' file
v2.0.0

Added feature 3
Added feature 4

En jolis caractères :

$ awk '/^=+$/ {     # at ===...
    f=!f            # flag state is flipped
    if(f==1)        # if its one (first ===...)
        next        # next record
    else if(f==0)   # if zero (second ===...)
        exit        # nothing more to do yeah
}
f' file             # print

En voici une autre dans GNU sed :

$ sed -n '/^=\+$/,//{//!p;b};q' file
v2.0.0

Added feature 3
Added feature 4
  • /^=\+$/,// est un raccourci pour /^=\+$/,/^=\+$/ , il sélectionne les lignes entre deux lignes composées de signes égal inclus, et les commandes entre les accolades suivantes sont exécutées pour ces lignes,
  • //!p est un raccourci pour /^=\+$/!p , cela signifie que si la ligne entrante n'est pas l'une de celles qui se composent uniquement de = s, imprimez-le,
  • b signifie aller à la fin du cycle (c'est-à-dire passer q ),
  • q sert à quitter sed après avoir imprimé les lignes sélectionnées.

La version suivante fonctionnera avec tous Seds compatible POSIX mais il semble 2x plus cryptique :

sed -n -e '/^=\{1,\}$/,//{//!p;b' -e '}' -e 'q' file

Notez que cela ne fonctionnera pas s'il y en a deux consécutifs tous = lignes dans l'entrée.


Pourriez-vous s'il vous plaît essayer de suivre aussi.

awk '/^=/{count++;next} count>=2{exit} {print}'  Input_file

Linux
  1. Comment puis-je obtenir la différence entre deux dates sous bash

  2. Comment pouvez-vous changer les touches j et k dans vim ?

  3. Comment différencier uniquement la première ligne de deux fichiers?

  4. Comment puis-je obtenir une liste de tous les mots mal orthographiés dans un texte en utilisant Linux ?

  5. Comment puis-je obtenir de manière fiable le nom du système d'exploitation ?

Comment supprimer les N premières lignes d'un fichier Ascii à l'aide des commandes Shell ?

Extraire du texte entre deux lignes spécifiques ?

comment puis-je différencier deux sections du même fichier ?

Comment puis-je obtenir la longueur d'un fichier vidéo à partir de la console ?

Comment extraire du texte d'un gros fichier, à partir de la première occurrence d'une chaîne ?

Comment pixelliser tout le texte d'un PDF ?