我有一个类似这样的文件:
19:32:19 4599544
19:32:22 4599544
19:33:07 4599545
19:33:11 4599545
19:33:58 4599546
19:34:01 4599546
第一列是时间(时:分:秒)。如果第二列值相同。我需要打印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