Grep - Mostrando mais linhas no resultado de pesquisas

Publicado por Kleyton Maia em 09/03/2012

[ Hits: 18.327 ]

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

Listando pacotes no Debian

Apontamento wireless

Mudando o relógio no Linux

Acessando máquinas Windows a partir do Linux na sua rede

Como ver a versão da distribuição no terminal (e outras informações)

  

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