Grep - Mostrando mais linhas no resultado de pesquisas

Publicado por Kleyton Maia em 09/03/2012

[ Hits: 27.780 ]

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

Trabalhando com Multitail

Dando permissão para desligar o computador

Usando o comando SCP!

Listando arquivos que contém determinado padrão recursivamente dentro de um diretório

Comando touch - uma forma para modificar a data de acesso e modificação de arquivos

  

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