Come si comporta Grep con linee sovrapposte?


1

Supponiamo che il mio file di testo assomigli a questo:

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

Se eseguo questo comando grep -A 4 'hello' draft.txt, Ho pensato di stampare qualcosa del genere:

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 > ....

Ma ciò che effettivamente fa è che stampa questo (che potrebbe essere una caratteristica / bug).

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

È così che dovrebbe funzionare? come faccio a comportarmi come quello che pensavo sarebbe? (quale interruttore / opzione devo usare?)

Risposte:


0

Altre righe con le partite contano come contesto. Puoi fare qualcosa per mostrare le corrispondenze per rendere l'output più facile da leggere.

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

enter image description here

Gruppi di corrispondenze e linee di contesto non contigue verranno suddivisi con -- su una linea da solo.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.