我在文件中有以下幾行,我希望按小時計算第三列的平均值。使用awk的列的平均小時數(行)
2010-10-28 12:02:36: 5.1721851 secs
2010-10-28 12:03:43: 4.4692638 secs
2010-10-28 12:04:51: 3.3770310 secs
2010-10-28 12:05:58: 4.6227063 secs
2010-10-28 12:07:08: 5.1650404 secs
2010-10-28 12:08:16: 3.2819025 secs
2010-10-28 13:01:36: 2.1721851 secs
2010-10-28 13:02:43: 3.4692638 secs
2010-10-28 13:03:51: 4.3770310 secs
2010-10-28 13:04:58: 3.6227063 secs
2010-10-28 13:05:08: 3.1650404 secs
2010-10-28 13:06:16: 4.2819025 secs
2010-10-28 14:12:36: 7.1721851 secs
2010-10-28 14:23:43: 7.4692638 secs
2010-10-28 14:24:51: 7.3770310 secs
2010-10-28 14:25:58: 9.6227063 secs
2010-10-28 14:37:08: 7.1650404 secs
2010-10-28 14:48:16: 7.2819025 secs
我已經做了
cat filename | awk '{sum+=$3} END {print "Average = ",sum/NR}'
與輸出
Average = 4.49154
獲得平均爲整個文件,但想要小時打破均線向下。我可以在輸出awk之前的一個小時內偷偷摸摸一下grep,但是我希望能夠用一個班輪來完成。
理想情況下,輸出會像
Average 12:00 = _computed_avg_
Average 13:00 = _computed_avg_
Average 14:00 = _computed_avg_
等。
未必尋找答案,但希望能指出正確的方向。
非常感謝!
KM
工程就像一個魅力。謝謝喬納森和諾維科夫。我現在將其逆向工程並試圖理解所有不同的部分(尤其是陣列)的作用......( - ;) – 2010-10-29 13:40:56