Shell‑скрипты, Ansible, deployment‑сценарии и другие подходы к автоматизации задач администрирования.
Правила форума
Убедительная просьба юзать теги [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
Заранее спасибо.
skeletor
-
Хостинг HostFood.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
- Откуда: Верх-Нейвинск
Непрочитанное сообщение
zg » 2008-12-05 17:13:18
Код: Выделить всё
awk '{sum[$1]+=$2}END{for(i in sum) print i,sum[i]}'
zg
-
skeletor
- майор
- Сообщения: 2548
- Зарегистрирован: 2007-11-16 18:22:04
Непрочитанное сообщение
skeletor » 2008-12-05 17:36:34
спасибо, работает.
Что бы не создавать ещё одну тему, может подскажите, как конвертнуть байты в более читабельный вид, например, в мегабайты?
skeletor
-
zg
- полковник
- Сообщения: 5845
- Зарегистрирован: 2007-12-07 13:51:33
- Откуда: Верх-Нейвинск
Непрочитанное сообщение
zg » 2008-12-05 17:46:29
гм... что-то мне подсказывает, что карытом тут не отделаться
Код: Выделить всё
awk '{sum[$1]+=$2}END{for(i in sum) print i,sum[i]/1024/1024"Mb"}'
zg