Como o grep lida com linhas sobrepostas?

1

Suponha que meu arquivo de texto tenha esta aparência:

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

Se eu executar este comando grep -A 4 'hello' draft.txt , pensei em imprimir algo assim:

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

Mas o que realmente faz é que imprime isso (o que pode ser um recurso / bug).

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

É assim que deve funcionar? Como faço para que ele se comporte como o que eu pensei que seria? (qual opção / opção eu uso?)

    
por Alex 22.04.2014 / 16:35

1 resposta

0

Outras linhas com correspondências contam como contexto. Você pode fazer algo para mostrar as correspondências para facilitar a leitura da saída.

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

Grupos não contíguos de correspondências e linhas de contexto serão divididos com -- em uma linha por si só.

    
por 22.04.2014 / 21:06

Tags