Supondo que os dados estejam estruturados de modo que seja sempre a linha antes e depois, você pode usar as opções -A
(após) e -B
(antes) do grep para incluir a linha 1 antes do jogo e 1 linha depois:
$ grep -A 1 -B 1 "42B" sample.txt
Pseudo name=Apple
Code=42B
state=fault
Se você quiser as mesmas linhas numéricas antes e depois do termo de pesquisa, use a opção -C
(context):
$ grep -C 1 "42B" sample.txt
Pseudo name=Apple
Code=42B
state=fault
Se você quiser ser mais rigoroso ao combinar as várias linhas, use a ferramenta pcregrep
, para corresponder a um padrão em várias linhas:
$ pcregrep -M 'Pseudo.*\n.*42B.*\nstate.*' sample.txt
Pseudo name=Apple
Code=42B
state=fault
O padrão acima corresponde ao seguinte:
-
-M
- várias linhas -
'Pseudo.*\n.*42B.*\nstate.*'
- corresponde a um grupo de strings em que a primeira string começa com a palavra"Pseudo"
seguida por todos os caracteres até o final da linha\n
, seguido por todos os caracteres até a string"42B"
seguida por todos os caracteres até outro fim de linha (\n
), seguido pela string"state"
seguido por quaisquer caracteres.