Tôi có các hàng sau trong tệp mà tôi muốn lấy mức trung bình của cột thứ 3 theo giờ.Trung bình của cột theo giờ (hàng) sử dụng 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
Tôi đã làm
cat filename | awk '{sum+=$3} END {print "Average = ",sum/NR}'
với sản lượng
Average = 4.49154
để có được mức trung bình cho toàn bộ tập tin, nhưng muốn phá vỡ mức trung bình xuống theo giờ. Tôi có thể lẻn một grep cho giờ trước khi đường ống đầu ra để awk, nhưng tôi muốn, hy vọng, làm điều đó với một lót.
Lý tưởng nhất, sản lượng sẽ là một cái gì đó giống như
Average 12:00 = _computed_avg_
Average 13:00 = _computed_avg_
Average 14:00 = _computed_avg_
và vân vân.
Không nhất thiết tìm kiếm câu trả lời, nhưng hy vọng sẽ được chỉ đúng hướng.
Rất cám ơn!
KM
hoạt động như một sự quyến rũ. cảm ơn cả Jonathan và Novikov. Tôi bây giờ sẽ đảo ngược kỹ sư nó và cố gắng hiểu những gì tất cả các phần khác nhau (đặc biệt là mảng) làm ... (-; –