質問
次の形式のタイムスタンプを持つファイルがあります:
HH:MM:SS.MS
e.g。
00:04:02.08
00:04:01.08
各タイムスタンプは異なる行にあり、通常はファイル内の2行だけです
これらの時間の平均を計算するには、awkスクリプトを作成する必要があります。私は awk スクリプティングに非常に精通しているので、誰かがコードスニペットを教えてくれれば、大いに役立ちます。
シェルスクリプト(bash)ソリューションでも役立ちます。
解決
/..:..:..\./ {
++count
split($ cat test.data
other stuff
00:04:02.08
more stuff
00:04:01.08
more stuff
$ awk -f q.awk < test.data
00:04:02.08 242.08
00:04:01.08 241.08
2 483.16 241.58
00:04:01.58
$
,a,":");
seconds = (a[1] * 60.0 + a[2]) * 60.0 + a[3]
print <*>, seconds
alltime += seconds
}
END {
if (count > 0) {
avgtime = alltime / count
print count, alltime, avgtime
mins = int(avgtime / 60.0) % 60
hours = int(avgtime / 60.0 / 60.0)
secs = avgtime % 60.0
printf("%02d:%02d:%05.2f\n", hours, mins, secs)
}
}
そして実行中...
<*>
所属していません StackOverflow