次のファイルがあります。
19:32:19 4599544
19:32:22 4599544
19:33:07 4599545
19:33:11 4599545
19:33:58 4599546
19:34:01 4599546
最初の列は時間(時:分:秒)です。 2番目の列の値が同じ場合。 column1の値の違いを印刷する必要があります。つまり、次のような出力が必要です。
3 4599544
4 4599545
3 4599546
ベストアンサー1
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