Подсчёт суммы чисел в файле, если есть неуникальные значения

Программирование на sh, быть может немного про альтернативные языки
Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
Аватара пользователя
skeletor
майор
Сообщения: 2548
Зарегистрирован: 2007-11-16 18:22:04

Подсчёт суммы чисел в файле, если есть неуникальные значения

Непрочитанное сообщение skeletor » 2008-12-05 17:04:57

Есть отсортированный файл такого вида

Код: Выделить всё

IP                bytes 

10.0.9.51       2829
10.0.9.51       6138
10.0.9.51       38644
10.0.9.51       5276
10.0.9.61       35657
10.0.9.63       4552
10.0.9.64       3270
Как найти суммарное количество байтов для каждого IP? То есть ответ должен быть примерно таким

Код: Выделить всё

10.0.9.51       4343
10.0.9.61       423974
10.0.9.63       13
10.0.9.64       4348
Решение может быть на любом из языков shell/perl/awk/sed
Заранее спасибо.

Хостинговая компания Host-Food.ru
Хостинг HostFood.ru
 

Услуги хостинговой компании Host-Food.ru

Хостинг HostFood.ru

Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/

zg
полковник
Сообщения: 5845
Зарегистрирован: 2007-12-07 13:51:33
Откуда: Верх-Нейвинск

Re: Подсчёт суммы чисел в файле, если есть неуникальные значения

Непрочитанное сообщение zg » 2008-12-05 17:13:18

Код: Выделить всё

awk '{sum[$1]+=$2}END{for(i in sum) print i,sum[i]}'

Аватара пользователя
skeletor
майор
Сообщения: 2548
Зарегистрирован: 2007-11-16 18:22:04

Re: Подсчёт суммы чисел в файле, если есть неуникальные значения

Непрочитанное сообщение skeletor » 2008-12-05 17:36:34

спасибо, работает.

Что бы не создавать ещё одну тему, может подскажите, как конвертнуть байты в более читабельный вид, например, в мегабайты?

zg
полковник
Сообщения: 5845
Зарегистрирован: 2007-12-07 13:51:33
Откуда: Верх-Нейвинск

Re: Подсчёт суммы чисел в файле, если есть неуникальные значения

Непрочитанное сообщение zg » 2008-12-05 17:46:29

гм... что-то мне подсказывает, что карытом тут не отделаться 8)

Код: Выделить всё

awk '{sum[$1]+=$2}END{for(i in sum) print i,sum[i]/1024/1024"Mb"}'