代码的新手,请保持温柔。我已经搜寻到令人头疼的地步,发现它接近我要尝试做的事情,但还没有完全解决。
我有一个显示连接状态的日志文件。我的目标是只有一条线来计算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脚本。
同样,我对此并不陌生,将继续为粗略的例子道歉。我也很感谢您的帮助。
答案 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的。