문제
형식의 타임 스탬프가있는 파일이 있습니다.
HH:MM:SS.MS
예를 들어
00:04:02.08
00:04:01.08
각 타임 스탬프는 다른 줄에 있으며 일반적으로 파일의 두 줄만
이 시간의 평균을 계산하려면 AWK 스크립트를 작성해야합니다. 나는 매우 순진하다 어색한 스크립팅, 누군가가 나에게 코드 스냅 펫을 줄 수 있다면 많은 도움이 될 것입니다.
쉘 스크립트 (bash) 솔루션조차도 도움이됩니다.
해결책
/..:..:..\./ {
++count
split($0,a,":");
seconds = (a[1] * 60.0 + a[2]) * 60.0 + a[3]
print $0, 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)
}
}
그리고 실행 ...
$ 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
$
제휴하지 않습니다 StackOverflow