The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  ВХОД  слежка  RSS
"Обработка текстовых файлов"
Вариант для распечатки  
Пред. тема | След. тема 
Форумы OpenNET: Виртуальная конференция (Public)
Изначальное сообщение [Проследить за развитием треда]

"Обработка текстовых файлов"  
Сообщение от wattonen email(ok) on 22-Мрт-07, 17:38 
есть файл следующего содержания:
973983 192.168.10.101
972554 192.168.10.16
954002 192.168.10.87
929206 192.168.10.24
928921 192.168.10.89
900988 192.168.10.89
900336 192.168.10.24
900064 192.168.10.24
899915 192.168.10.89
898429 192.168.10.89
851817 192.168.10.89
837050 192.168.10.89
832832 192.168.10.101
822806 192.168.10.89
822778 192.168.10.89

Мне надо сделать так называемое сворачивание таблицы, т.е. получить во втором столбце уникальные айпи-адреса, а в первом - их суммарные значения.  Интересует решения с использованием sed'a, awk'a, етц.

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

 Оглавление

Сообщения по теме [Сортировка по времени, UBB]


1. "Обработка текстовых файлов"  
Сообщение от newser (ok) on 22-Мрт-07, 18:05 
>есть файл следующего содержания:
>973983 192.168.10.101
>972554 192.168.10.16
>954002 192.168.10.87
>929206 192.168.10.24
>928921 192.168.10.89
>900988 192.168.10.89
>900336 192.168.10.24
>900064 192.168.10.24
>899915 192.168.10.89
>898429 192.168.10.89
>851817 192.168.10.89
>837050 192.168.10.89
>832832 192.168.10.101
>822806 192.168.10.89
>822778 192.168.10.89
>
>Мне надо сделать так называемое сворачивание таблицы, т.е. получить во втором столбце
>уникальные айпи-адреса, а в первом - их суммарные значения.  Интересует
>решения с использованием sed'a, awk'a, етц.

С помощью sed навряд ли, а в awk используйте ассоциативные массивы.

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

2. "Обработка текстовых файлов"  
Сообщение от xan on 22-Мрт-07, 23:55 
>>... а в awk используйте ассоциативные массивы.
Sure, you can. However:
cat a.txt | sort -k 2 | awk 'BEGIN{Count=0; Addr="BLEEP"} {if (Addr==$2) {Count+=$1;} else {printf "%d %s\n",Count, Addr; Count=$1;Addr=$2;}} END{printf "%d %s\n",Count, Addr;} ' | grep -v BLEEP
works just fine , providing that a.txt is input file with statistics. Have no idea how to avoid BLEEP though.
Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

Архив | Удалить

Индекс форумов | Темы | Пред. тема | След. тема
Оцените тред (1=ужас, 5=супер)? [ 1 | 2 | 3 | 4 | 5 ] [Рекомендовать для помещения в FAQ]




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру