次の入力があります。
1. Track 01 05:21
2. Track 02 07:39
3. Track 03 04:27
私は次のスクリプトを思いついた。
awk -F: '{a+=$(NF-1)*60+$(NF);printf"%d:%02d:%02d\n",a/3600,a%3600/60,a%3600%60}' file
しかし、私が得た結果は次のとおりです。
0:01:21
0:04:00
0:07:27
その結果、同じスクリプトを使用して時間だけが含まれ、他のものは含まれていないファイルがある場合は正しい出力が得られます。
入力する:
05:21
07:39
04:27
出力:
0:05:21
0:13:00
0:17:27
ベストアンサー1
2つのawkコマンドを使用してください
awk '{print $NF}' file |awk '{a+=$(NF-1)*60+$(NF);printf"%d:%02d:%02d\n",a/3600,a%3600/60,a%3600%60}'
最初の awk はファイルの las フィールドを抽出し、2 番目の awk は目的のプロシージャを生成します。
時間が行の最後のフィールドである限り、ファイルに時間のみが含まれているかどうかに関係なく機能します。