下/上时间戳计算

时间:2018-12-22 15:34:17

标签: awk

代码的新手,请保持温柔。我已经搜寻到令人头疼的地步,发现它接近我要尝试做的事情,但还没有完全解决。

我有一个显示连接状态的日志文件。我的目标是只有一条线来计算DOWN和UP时间之间的时间差。

cat file.txt | grep device | grep status_change | awk {time column} | awk 'present Up time next to Down time'

所以现在我的时间显示来自:

10:30:00
10:31:00

10:30:00 10:31:00

是否可以在行的末尾添加用于计算时差的代码?

cat file.txt | grep device | grep status_change | awk {time column} | awk 'present Up time next to Down time' | awk '{print $3=$2-$1}'

1:00

类似的东西。如果没有,我将继续猛击bash脚本。

同样,我对此并不陌生,将继续为粗略的例子道歉。我也很感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

以秒为单位的结果:

echo 10:30:00 10:31:00|awk '{dt=strftime("%Y %m %d ");gsub(":"," ",$1);gsub(":"," ",$2);print mktime(dt $2)-mktime(dt $1);}'
# => 60

将awk部分添加到命令集群中即可。
您可以将时差进一步格式化为所需的格式。
您可以检查awk的时间函数here
PS:是针对GNU awk的。