如何在Bash中提取两个epoch时间戳并计算二者的差值
计算epoch时间戳差值的解决方案
你提取到的$2、$3本身就是浮点型的秒级时间戳数值,无需转换为可读时间格式,直接做减法即可得到单位为秒的时间差。
修改后的awk脚本示例
同时输出可读时间和时间差
awk -F";;;|;" -vOFS='\t' 'NR>1 { # 跳过表头行 diff = $3 - $2 print strftime("%c", $2), strftime("%c", $3), diff "s" }' duration.txt
你给出的示例日志行运行后输出结果为:
Wed Dec 1 00:04:12 2021 Wed Dec 1 00:04:13 2021 0.42s
仅输出时间差
awk -F";;;|;" 'NR>1 {print $3 - $2}' duration.txt
补充说明
- 若需要固定时间差的小数精度,可替换打印逻辑为
printf("%.3f s\n", diff),即可保留3位小数 - 逻辑默认跳过第一行表头,若你的文件没有表头,删除
NR>1条件即可
内容的提问来源于stack exchange,提问作者nmn_dev
相关产品推荐
相关产品推荐

