Среднее значение столбца по часам (строкам) с использованием 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

, чтобы получить среднее значение для всего файла, но хочу разбить среднее значение по часам. Я могу скрыть grep за час до передачи вывода в awk, но я бы хотел, надеюсь, сделать это с однострочником.

В идеале, вывод должен быть примерно таким, как

Average 12:00 = _computed_avg_
Average 13:00 = _computed_avg_
Average 14:00 = _computed_avg_

и так далее.

Не обязательно искать ответ, но надеяться, что его укажут в правильном направлении.

6
задан halfer 11 March 2019 в 16:29
поделиться