我正在寻找单线程awk代码来查找时间和系统日期之间的差异。时间格式是这样的:16:13:04,699我希望在几分钟内有所不同。我对awk不是很熟悉,我可以通过编写脚本来计算这种差异,但想在一行中完成。
谢谢。
答案 0 :(得分:4)
不完全是单行:
awk -v 'time=16:13:04,699' -v "date=$(date +%H:%M:%S)" '
function abs(x) {return x<0 ? -x : x}
BEGIN {
split(time, ary, /[:,]/); t_sec = 3600*ary[1] + 60*ary[2] + ary[3]
split(date, ary, /:/); d_sec = 3600*ary[1] + 60*ary[2] + ary[3]
# output difference in minutes
print abs(t_sec - d_sec)/60
}
'