verifica a variável em um arquivo para consistência no incremento

0

Estou usando o cygwin e tenho alguma experiência em escrever scripts, usando o grep. deu-me a possibilidade de encontrar algumas cadeias particulares em enormes arquivos de log. Agora estou enfrentando um próximo desafio, mas não sei como resolvê-lo. Basicamente eu quero verificar um número em um arquivo, com o mesmo número em uma linha anterior. Considere o seguinte arquivo:

a segunda coluna nesta mensagem é um tempo relativo em milissegundos.

Eu quero verificar as diferenças com o valor anterior. Quero exibir as ocorrências, em que as diferenças são maiores que 50 ms (717 - 667 > 50)

Alguém sabe como fazer isso? A maneira como usei o grep é filtrar um arquivo completo em um buraco. É ótimo e poderoso, mas agora não posso usá-lo aqui.

    
por Foppe 17.08.2017 / 12:12

1 resposta

5

Esse é um trabalho típico para awk :

awk '$2 - prev > 50; {prev = $2}' < file

Ou apenas considerar linhas que tenham um número no segundo campo e pular a primeira linha com um número:

awk 'prev != "" && $2 - prev > 50; $2 ~ /[0-9]/ {prev = $2}' < file
    
por 17.08.2017 / 12:23