Compare os valores dos registros uns com os outros.

2

Por favor, considere o arquivo abaixo:

foo,boo,900
foo,boo,900
foo,boo,850

Eu preciso comparar o campo a ( $3 ) com o próximo registro, se a diferença for igual ou maior que 50, então imprima o registro.

ou seja, da amostra acima, $3 do segundo registro - $3 do terceiro registro = 50, a saída seria:

foo,boo,850

Por favor, informe como isso poderia ser implementado.

    
por Eng7 13.08.2015 / 16:32

1 resposta

2

Você pode tentar este awk

awk -F"," 'NR != 1 { if ((x - $3) >= 50) print $0; } { x = $3 }' file

e este se você não quiser imprimir linha se arquivado $1 alterado:

awk -F"," 'NR != 1 { if ($1 == fc && (x - $3) >= 50) print $0; } { x = $3; fc = $1; }' file
    
por 13.08.2015 / 16:40