Imprimir log entre duas datas [duplicado]

0

Eu quero obter detalhes do log entre duas datas, mas não consigo imprimir nada com o comando:

egrep "^\[MAY 16 11:00:00\]"  alert.log -A 10000 | egrep "^\[MAY 16 16:30:00\]" -B 10000
    
por user3297431 18.05.2017 / 17:48

2 respostas

0

Usando sed :

sed -n '/May 16 11:00:00/,/May 16 16:30:00/p' /path/to/inputfile

Com grep , acho que os problemas podem ser em primeiro lugar a ordem dos seus parâmetros - você está colocando os argumentos -A e -B após o arquivo de entrada, então grep provavelmente está tentando ler arquivos chamados -A , -B e 10000 ; e em segundo lugar, que você não está escapando de suas chaves quadradas. Seu pipeline poderia funcionar da seguinte maneira:

grep -E -A10000 'May 16 11:00:00' alert.log | grep -E -B10000 'May 16 16:30:00'

Observe que isso só funcionará se você realmente tiver uma entrada de log que corresponda ao registro de data e hora exato para o qual você está pesquisando; ajuste de acordo com a primeira e a última entrada que você deseja como limites da sua pesquisa.

    
por 18.05.2017 / 17:53
0

Usando egrep com base no exemplo fornecido por você:

egrep "May 16 1[1-6]:..:.." /path/to/file | egrep -v "May .. 16:[3-5][1-9]:[0-9][1-9]"
    
por 18.05.2017 / 18:07