Linux和Mac下用管道批量计算时间差
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了Linux和Mac下用管道批量计算时间差,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含991字,纯文字阅读大概需要2分钟。
内容图文
![Linux和Mac下用管道批量计算时间差](/upload/InfoBanner/zyjiaocheng/928/046fa7827e8c4747a1edabc9e39a6a11.jpg)
前言
在公司实习的时候,需要计算某个服务的启动时间即提交任务到Server真正Start的时长。由于改服务个数较多,考虑编写shell脚本来实现。
示例
从日志中提取时间的步骤省略掉,提取出来的结果如下保存为time.log。
2021-02-27 09:59:28
2021-02-27 09:59:48
2021-02-27 10:03:33
2021-02-27 09:58:40
2021-02-27 09:59:14
2021-02-27 09:55:30
2021-02-27 10:01:23
2021-02-27 09:58:46
2021-02-27 10:01:20
可以直接写shell脚本for循环进行处理,但是我采用自己刚学习的管道用法
cat time.log |while read -r row; do echo $row; done
打印每一行row
只需要在打印的时候将时间字符串转为时间戳即可
linux下date -d $row +%s
mac下date -j -f "%Y-%m-%d %H:%M:%S" $row +%s
成功将字符串转为时间戳,接下来需要用expr $row - 1614390737
来计算
其中1614390737是我提交任务的时间戳已经先计算好,也可以再嵌套一个date函数但那样嵌套有点复杂
cat time.log | while read -r row; do echo `date -j -f "%Y-%m-%d %H:%M:%S" $row +%s`; done | while read -r row; do echo `expr $row - 1614390737`; done
得到如下的时间差,如果需要分钟、小时可以在expr的时候进行换算
内容总结
以上是互联网集市为您收集整理的Linux和Mac下用管道批量计算时间差全部内容,希望文章能够帮你解决Linux和Mac下用管道批量计算时间差所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。