Comment grep traite-t-il les lignes qui se chevauchent?

1

Supposons que mon fichier texte ressemble à ceci:

hello world1
foo bar2
hello world3
foo bar4
hello world5
foo bar 

Si j'exécute cette commande grep -A 4 'hello' draft.txt, je pensais qu'elle imprimait quelque chose comme ceci:

hello world1     <<<<<<< This line matches
foo bar2         <<< These lines are the printed because of -A 4
hello world3     <<<
foo bar4         <<<
hello world5     <<< 
hello world3     <<<<<<< this line matches
foo bar4         <<< These lines are printed because of -A 4
hello world5     <<<
foo bar          <<<
 ... < so on > ....

Mais ce qu’il fait réellement, c’est qu’il l’imprime (ce qui pourrait être une fonctionnalité / un bug).

hello world1
foo bar2
hello world3
foo bar4
hello world5
foo bar 

Est-ce ainsi que cela est supposé fonctionner? Comment puis-je le faire se comporter comme ce que je pensais? (quel commutateur / option dois-je utiliser?)

Alex
la source

Réponses:

0

Les autres lignes avec des correspondances comptent comme contexte. Vous pouvez faire quelque chose pour que les correspondances apparaissent afin de rendre la sortie plus facile à lire.

grep  --color -A 4 'hello' draft.txt

entrez la description de l'image ici

Les groupes de correspondances et les lignes de contexte non contigus seront séparés par --une seule ligne.

Brian
la source