如何使用 awk 对计时值求和?
我有一个这样的清单:
5:45
4:28
4:46
5:13
4:58
3:18
4:59
4:55
3:57
2:1
1:30
2:0
5:18
3:45
6:15
并想要这样的输出:
h:mm:ss
答案1
尝试
$ awk -F: '{a+=$1*60+$2}END{printf"%d:%02d:%02d",a/3600,a%3600/60,a%3600%60}' file
1:03:08
$
-F:
- 设置:
为字段分隔符{a+=$1*60+$2}
- 总计秒数,即字段 1 * 60 + 字段 2。END{printf"%d:%02d:%02d"
- 在文件末尾,以格式化方式打印结果,即分钟和秒前导零a/3600,
- 小时是秒除以 60 除以 60a%3600/60,
- 分钟是秒的余数除以 60 再除以 60,然后除以 60a%3600%60}
- 对于秒,取秒的余数除以 60 再除以 60,然后取余数除以 60