質問

次の形式のタイムスタンプを持つファイルがあります:

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) } }

そして実行中...


<*>
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top