Awk script pour obtenir des moyennes de temps
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.
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