
saviounix
(usa Debian)
Enviado em 14/10/2016 - 22:29h
monique_silva7 escreveu:
Pessoal,
Gostaria da ajuda de vocês.
Tenho necessidade de filtrar as horas de um log das 00:00 as 23:59 para contagem das linhas. Tentei a expressão abaixo e não me retorna nada. Alguém poderia me ajudar?
cat log | egrep '^00:(0[0-9]|59):.*' | wc -l
Desde já agradeço
O comando descrito por MSOLIVER está correto, pois traz os dados de cada linha que possui o padrão de horário filtrado.
Mas para o problema em questão, acredito que sua intenção é informar a quantidade de ocorrências que atenderão ao padrão de horas criado.
Há duas maneiras de se obter tal resultado, sendo elas:
1ª
egrep '((0|1)[0-9]|2[0-3]):[0-5][0-9]' log | wc -l
2ª
egrep '((0|1)[0-9]|2[0-3]):[0-5][0-9]' log -c
As duas alternativas, ambas aproveitando-se do código do nosso amigo MSOLIVER, retornam a quantidade de linhas.
A única diferença é que na primeira, a saída da instrução "egrep" foi associada ao programa "wc". Dessa forma um recurso e tempo extra são gastos sem necessidade, ainda que tal gasto não seja notável (mínimo).
Já a segunda instrução aproveita-se da expressão que o programa grep/egrep/fgrep possui ('-c'), que conta cada linha lida pelo programa enquanto o mesmo é executado.
Espero ter contribuído em algo para o tópico, ou mesmo para complemento do "post" criado pelo MSOLIVER.
Até mais ;D