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"- ファイルの末尾に結果をフォーマットされた形式で印刷します(例:0の前に分と秒を表示)。
  • a/3600,- 時間は秒を60で割った値です。
  • a%3600/60,- 分は、秒の残りの部分を60で割った後、60で割った後、60で割った値です。
  • a%3600%60}- 秒の間は秒の残りを取り、60で割り、再び60で割り、残りを取り、60で割ります。

おすすめ記事