¿Cómo lidia grep con las líneas superpuestas?

1

Supongamos que mi archivo de texto se ve así:

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

Si ejecuto este comando grep -A 4 'hello' draft.txt, pensé que imprime algo como esto:

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

Pero lo que realmente hace es que imprime esto (que podría ser una característica / error).

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

¿Es así como se supone que funciona? ¿Cómo consigo que se comporte como pensé que sería? (¿Qué interruptor / opción utilizo?)

Alex
fuente

Respuestas:

0

Otras líneas con coincidencias cuentan como contexto. Puede hacer algo para que las coincidencias aparezcan para que la salida sea más fácil de leer.

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

ingrese la descripción de la imagen aquí

Los grupos no contiguos de coincidencias y líneas de contexto se dividirán --en una línea por sí mismos.

Brian
fuente