使用 awk 求和分钟和秒

使用 awk 求和分钟和秒

如何使用 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 除以 60
  • a%3600/60,- 分钟是秒的余数除以 60 再除以 60,然后除以 60
  • a%3600%60}- 对于秒,取秒的余数除以 60 再除以 60,然后取余数除以 60

相关内容