Grep - Mostrando mais linhas no resultado de pesquisas

Publicado por Kleyton Maia em 09/03/2012

[ Hits: 28.683 ]

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=<usuario@piripimpim.com.br>, 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

Como limitar o acesso via telnet em um servidor a apenas algumas máquinas?

Corrigindo erro persistente no dpkg que impede qualquer instalação

Solicitar a alteração de senha no primeiro login - Samba

Cuidado com o "sl"

Convertendo arquivo para PDF no terminal

  

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

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts