我有以下 input.txt 文件。我需要计算 $2 和 $3 的时差并以小时为单位打印时差。
P1, 2016-05-30 00:11:20, 2016-05-30 04:36:40
P2, 2016-05-30 00:07:20, 2016-05-30 04:32:31
我有以下代码,但时间显示不准确。请帮忙。
awk -F, '{gsub(/[-:]/," ",$2);gsub(/[-:]/," ",$3);
d2=mktime($3);d1=mktime($2);
print $1","(d2-d1)/3600,"hrs";}' input.txt
我得到这样的输出。
P1,4.42222 hrs
P2,4.41972 hrs
但应该是有区别的 4:25:20 小时 4:25:11 小时
提前致谢
最佳答案
如果您想以 HH:MM:SS 语法打印秒数,您需要自己进行计算。如果您想打印 4:02:30 而不是 4:2:30,则使用 printf
会很有用。例如,
secs = d2 - d1;
printf "%s, %d:%02d:%02d hrs.\n", $1, int(secs/3600), int(secs/60)%60, secs%60
关于bash - 使用awk计算时间差,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37531525/