Question

J'ai un fichier avec des horodatages au format:

HH: MM: SS.MS

par exemple

  

00: 04: 02.08

     

00: 04: 01.08

Chaque horodatage est sur une ligne différente, généralement deux lignes dans un fichier

.

Je dois écrire un script awk pour calculer la moyenne de ces temps. Je suis assez naïf dans les scripts awk , donc si quelqu'un peut me donner un extrait de code, cela vous aidera beaucoup.

Même une solution de script shell (bash) aidera.

Était-ce utile?

La solution

/..:..:..\./ {
  ++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) } }

Et le lancer ...

<*>
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top