문제

형식의 타임 스탬프가있는 파일이 있습니다.

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
$ 

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top