Se você quiser apenas linhas específicas entre um certo tempo, então awk
funcionará. Para dar um leve tutorial
Para começar e descobrir quais linhas você deseja:
cat -n logfile
Isso mostrará o conteúdo do arquivo com os números de linha.
Para imprimir os números de linha desejados:
awk 'NR==2,NR==4' logfile
Isso imprime o intervalo entre as linhas 2 e 4.
Se você deseja imprimir mais duas linhas ou um intervalo de linhas que não são consecutivas, caso queira, pode separá-las com ||
ou ;
awk 'NR==5,NR==10;NR==15,NR==20' logfile
Passando para imprimir as linhas entre um determinado intervalo de tempo, combine o acima com grep grep
:
cat -n logfile | grep -e '2018-04-12 14:44:01.000' -e '2018-04-12 16:46:00.000' | awk NR==5,NR==10
grep -e
permite que várias strings sejam retornadas. Adicione -e
para cada string. Isso irá imprimir as linhas com o início e fim do intervalo de tempo (eu mudei o final para um momento posterior para incluir mais linhas), juntamente com o seu número de linha. Você pode então usar awk
para imprimir o intervalo entre e incluindo as duas linhas.
Você pode pegar tudo isso como um exemplo e modificá-lo para atender às suas necessidades de arquivos de log e o que deseja imprimir de acordo com os horários.