[SP-pm] Filtrar arquivos texto

Marcio - Google marciorp at gmail.com
Sat Apr 13 18:32:05 PDT 2013


Salve Mestres,

Tenho alguns arquivos de log que tenho que analisar com frequência. Tenho
um script em shell que me ajuda, porém queria algo um pouco mais
inteligente, e de preferência em Perl.

Funciona assim, tenho no mesmo diretório vários arquivos de log, com
formato similar. Eles são assim:
[DD-MM-AAAA HH:MM:SS] <CODIGO> ?: <Informações de comprimento variável>
ou
?[DD-MM-AAAA HH:MM:SS]: <Informações de comprimento variável>
ou
?[DD-MM-AAAA HH:MM:SS.MMM]: <Informações de comprimento variável>

Esse <?> é o tipo de evento, e o que me interessa normalmente é (E)rror e
(W)arning.

Então preciso passar um determinado arquivo como parâmetro para o script e
o tipo de evento que quero (E ou W). O script precisa listar blocos desse
arquivo. Os blocos começam 5 linhas antes do evento e vão até 5 linhas após
o evento.
Assim, se o evento E aparecer nas linhas 50 e 100, ele tem que listar as
linhas 45 a 55 e 95 a 105.
Bom, até ai acho que tá fácil ... eu acho ... rsrsrs ... ainda não consegui
de uma maneira "elegante" ... kkkk
Só que agora que a porca torce o rabo. Ele precisa pegar a data/hora que
apareceu os eventos que estou procurando e procurar em todos os outros
arquivos do diretório, com uma margem de 15 segundos a menos ou a mais.
Assim, vamos suporte que ele tenha encontrado essas linha:
[13-04-2013 21:17:15] f8j39h37 E:blablablablablablabla
Ele teria que além de listar as linhas desse arquivo, verificar em todos os
outros se houve qualquer registro entre 13/04/2013 21:17:00 e 13/04/2013
21:17:30 ... se sim, listar as linhas também.

Ideias?? Dá pra fazer algo bem compacto e rápido no estilo regex??

Ah, não fui eu quem criou esse esquema de log maluco.


Abs,

Marcio
-------------- Pr?xima Parte ----------
Um anexo em HTML foi limpo...
URL: <http://mail.pm.org/pipermail/saopaulo-pm/attachments/20130413/14b98a5d/attachment.html>


More information about the SaoPaulo-pm mailing list