Como usar tail -f com grep para mostrar as linhas circundantes


15

Gostaria de ver a saída em um arquivo de log recebido por apenas um domínio, mas também pelas duas linhas a seguir .

Exemplo:

tail -f /var/log/apache2/modsec_audit.log |grep mydomain.de

isso mostra todas as linhas que contêm "mydomain.de", mas as informações importantes estão na linha abaixo da linha, onde o domínio está incluído

Respostas:


24

O grep possui opções extras para definir quantas linhas antes e depois do resultado:

  • -A (depois de)
  • -B (antes)
  • -C (contexto [antes + depois])

Então, no seu caso, você precisa -A:

YOUR_COMMAND |grep -A NUMBER YOURDOMAIN

o comando acima imprime as NUMBERlinhas depois YOURDOMAINno arquivo.


Observe, no entanto, que esta é uma extensão GNU. Se você está no Linux, grepdefinitivamente tem essa opção. Se não estiver, é melhor verificar.
Leonid

9

Tente passar o número de linhas de contexto para grep.

| grep -C 5

imprimirá 5 linhas antes e depois da partida.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.