Como Usar o grep
para Mostrar Linhas ao Redor de Cada Correspondência?
Quando se trata de pesquisar em arquivos em um sistema operacional Linux ou similar ao Unix, o grep
é uma ferramenta de linha de comando inestimável. No entanto, às vezes você precisa de mais do que apenas as linhas correspondentes; você também quer ver o contexto que envolve essas correspondências. Este post de blog irá guiá-lo sobre como mostrar as linhas anteriores e seguintes em torno de cada linha correspondente usando o grep
.
O Problema
Você tem um arquivo e deseja pesquisar termos ou padrões específicos. Simplesmente encontrar essas correspondências não é suficiente – você também quer visualizar as linhas que aparecem antes e depois das linhas correspondentes. Por exemplo, se você está monitorando um arquivo de log para certas mensagens de erro, o contexto ao redor desses erros pode ser igualmente importante.
A Solução
Usando as Opções -B
e -A
No grep
, você pode usar as flags -B
e -A
para controlar quantas linhas antes e depois de cada correspondência você deseja ver:
-B num
: Esta opção especifica o número de linhas a serem exibidas antes da linha correspondente.-A num
: Esta opção especifica o número de linhas a serem exibidas depois da linha correspondente.
Comando Exemplo
Para ilustrar, suponha que você queira encontrar ocorrências do termo foo
em um arquivo chamado README.txt
e deseja ver 3 linhas antes e 2 linhas depois de cada correspondência. Veja como você estruturaria seu comando:
grep -B 3 -A 2 foo README.txt
- O que este comando faz:
- Ele pesquisa a palavra-chave
foo
emREADME.txt
. - Exibe 3 linhas anteriores a cada ocorrência de
foo
. - Mostra 2 linhas seguintes a cada ocorrência.
- Ele pesquisa a palavra-chave
Usando a Opção -C
Se você quiser mostrar o mesmo número de linhas antes e depois de cada correspondência, o grep
também possui uma opção conveniente para isso:
-C num
: Esta opção permite especificar quantas linhas exibir tanto antes quanto depois da linha correspondente.
Comando Exemplo
Para mostrar 3 linhas tanto antes quanto depois de cada correspondência de foo
, use o seguinte comando:
grep -C 3 foo README.txt
- O que este comando faz:
- Pesquisa por
foo
emREADME.txt
. - Exibe 3 linhas antes e depois de cada ocorrência de
foo
.
- Pesquisa por
Conclusão
Usar as opções -B
, -A
e -C
de forma eficaz permite que você extraia contexto significativo de suas pesquisas. Seja solucionando problemas em logs ou simplesmente analisando um arquivo de texto, ser capaz de ver linhas ao redor de suas correspondências fornece informações valiosas.
Agora que você sabe como encontrar correspondências com linhas ao redor usando o grep
, experimente em sua próxima busca de arquivo!