Grep - Mostrando mais linhas no resultado de pesquisas

Publicado por Kleyton Maia em 09/03/2012

[ Hits: 19.666 ]

Blog: http://kadron74.blogspot.com/

 


Grep - Mostrando mais linhas no resultado de pesquisas



O comando Grep serve para pesquisar, ou melhor, filtrar o resultado por uma expressão ou palavra específica. Porém, muita vezes me deparei com a situação em querer saber o que acontece, além daquele resultado ou antes dele acontecer.

Por conta disso, compartilho com vocês a forma que fica a expressão para mostrar quantidades de linhas antes ou depois de achar o resultado pesquisado ou filtrado:

# tail -f /var/log/maillog | grep -A 2 -B 1 "kleyton"

No exemplo acima, o comando Tail para listar pelo final, como exemplo, o Log de E-mail. Com a opção '-f', que ficará seguindo e mostrando as linhas que são concatenadas ao Log, no caso em "/var/log/maillog".

O caractere '|', serve para jogar a saída do Tail no Grep, e assim desta saída, o Grep irá filtrar o resultado conforme a expressão.

Então vamos lá, o parâmetro '-A', informa a quantidade de linhas anteriores que serão mostradas, e o '-B', a quantidade de linhas posteriores mostradas.

No exemplo, serão duas linhas, e entre aspas, a expressão filtrada em si.

Assim, o resultado do comando seria :
Mar 7 10:07:52 golf dovecot: pop3-login: Login: user=<usuario2>, method=PLAIN, rip=::ffff:192.168.10.11, lip=::ffff:192.168.10.2
Mar 7 10:07:52 golf dovecot: POP3(priscilla): Disconnected: Logged out top=0/0, retr=0/0, del=0/127, size=16789607
Mar 7 10:07:53 golf dovecot: pop3-login: Login: user=<kleyton.maia>, method=PLAIN, rip=::ffff:192.168.10.12, lip=::ffff:192.168.10.2
Mar 7 10:07:53 golf postfix/local[29258]: A752D9BA907: to=<[email protected]>, relay=local, delay=5.3, delays=3.1/0/0/2.1, dsn=2.0.0, status=sent (delivered to command: /usr/bin/procmail)
Mar 7 10:07:53 golf postfix/qmgr[2471]: A752D9BA907: removed

Note que acima, são mostradas na saída, duas linhas do Log acima e duas abaixo do resultado procurado.

Desta forma, ajuda muito a identificar em certos trechos, o que está ocorrendo quando um determinado resultado aparece, manipulando os valores de '-A' e '-B', conforme sua necessidade.

É isso ai galera. Espero que tenha ajudado as pesquisas.

Outras dicas deste autor

Configurar Postfix + Sendmail para envio de e-mails em scripts

Leitura recomendada

Temas unificados no openSUSE

Como usar o Zenshot

Rápido sobre RPM

Visualizando arquivos em modo texto

Monitorando um comando com strace

  

Comentários
[1] Comentário enviado por kleytonmaia em 09/03/2012 - 16:46h

Uma pequena errata para a saída exata como no exemplo ao invez de grep -A 2 -B 1 "kleyton" seria grep -A 2 -B 2 "kleyton" , pois o -B representa as linhas apos sendo assim 2 para duas linhas você pode colocar quanto quiser ali.



Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner
Linux banner
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts