<div dir="ltr">Salve Mestres,<div><br></div><div>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.</div>
<div><br></div><div>Funciona assim, tenho no mesmo diretório vários arquivos de log, com formato similar. Eles são assim:</div><div>[DD-MM-AAAA HH:MM:SS] <CODIGO> ?: <Informações de comprimento variável></div>
<div style>ou</div><div style>?[DD-MM-AAAA HH:MM:SS]: <Informações de comprimento variável><br></div><div><div>ou</div><div>?[DD-MM-AAAA HH:MM:SS.MMM]: <Informações de comprimento variável><br></div></div><div>
<br></div><div>Esse <?> é o tipo de evento, e o que me interessa normalmente é (E)rror e (W)arning.</div><div><br></div><div>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. </div>
<div style>Assim, se o evento E aparecer nas linhas 50 e 100, ele tem que listar as linhas 45 a 55 e 95 a 105.</div><div style>Bom, até ai acho que tá fácil ... eu acho ... rsrsrs ... ainda não consegui de uma maneira "elegante" ... kkkk</div>
<div style>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.</div>
<div style>Assim, vamos suporte que ele tenha encontrado essas linha:</div><div style>[13-04-2013 21:17:15] f8j39h37 E:blablablablablablabla</div><div style>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.</div>
<div style><br></div><div style>Ideias?? Dá pra fazer algo bem compacto e rápido no estilo regex??</div><div style><br></div><div style>Ah, não fui eu quem criou esse esquema de log maluco.</div><div><div><br></div><br>Abs,<br>
<br>Marcio
</div></div>