Imprime a diferença da coluna1 se os valores da coluna2 forem os mesmos

1

Eu tenho um arquivo como este:

19:32:19        4599544
19:32:22        4599544
19:33:07        4599545
19:33:11        4599545
19:33:58        4599546
19:34:01        4599546

A primeira coluna é a hora (hh: mm: ss). Se os valores da segunda coluna forem iguais. Preciso imprimir a diferença dos valores column1. ou seja, eu preciso de uma saída como esta: -

3  4599544
4  4599545
3  4599546
    
por Krishna 21.10.2014 / 17:09

1 resposta

2

awk '
    function to_seconds(hms,     t) {
        split(hms, t, /:/)
        return (t[1]*3600 + t[2]*60 + t[3])
    }
    $2 in times {print to_seconds($1) - times[$2], $2}
    {times[$2] = to_seconds($1)}
' << DATA
19:32:19        4599544
19:32:22        4599544
19:33:07        4599545
19:33:11        4599545
19:33:58        4599546
19:34:01        4599546
DATA
3 4599544
4 4599545
3 4599546
    
por 21.10.2014 / 17:26

Tags