1
我的格式爲帶有時間戳文件:awk腳本獲取時間平均
HH:MM:SS.MS
例如
00:04:02.08
00:04:01.08
每個時間戳是在另一條線路,通常只有兩行的文件
我需要寫一個awk腳本來計算這些時間的平均值。我很天真awk腳本,所以如果有人可以請給我一個代碼片段,它會有很多幫助。
即使是shell腳本(bash)解決方案也會有所幫助。
我的格式爲帶有時間戳文件:awk腳本獲取時間平均
HH:MM:SS.MS
例如
00:04:02.08
00:04:01.08
每個時間戳是在另一條線路,通常只有兩行的文件
我需要寫一個awk腳本來計算這些時間的平均值。我很天真awk腳本,所以如果有人可以請給我一個代碼片段,它會有很多幫助。
即使是shell腳本(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
$
如果你是賣這個在租來的編碼器,請不要告訴我這件事。 :-) – DigitalRoss 2009-09-15 06:31:59
+1但是正則表達式可能會改進,例如/ [0-9] {1,}:[0-5] [0-9]:[0-5] [0-9] \。{ 1} [0-9] {0,3} /作爲條目,如「#Time應指定爲HH:MM:SS.UUU」將通過平均關閉 – 2009-09-15 07:06:35
非常感謝,請放心,我不會出售此內容在RentACoder。 :)需要它作爲我需要在我的工作中編寫的批處理腳本的一部分。 – 2009-09-15 08:26:06