The OpenNET Project / Index page

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

форумы  помощь  поиск  регистрация  майллист  вход/выход  слежка  RSS
"Как соорудить сортировку внтри цикла awk ?"
Вариант для распечатки  
Пред. тема | След. тема 
Форум Программирование под UNIX (Shell скрипты)
Изначальное сообщение [ Отслеживать ]

"Как соорудить сортировку внтри цикла awk ?"  +/
Сообщение от universite email(ok) on 01-Апр-13, 20:24 
Есть

awk '$1 != "serverip" && ... куча условий ... { print $0 }' $log | awk '{!a[$1]++}END{for(i in a) if ( a[i] > 400 ) print i,a[i] }'


Нужно объединить два awk и рассортировывать i,a[i] по убыванию второго ключа....

Ответить | Правка | Cообщить модератору

Оглавление

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


1. "Как соорудить сортировку внтри цикла awk ?"  +/
Сообщение от universite email(ok) on 01-Апр-13, 20:35 
без использования в конце

| sorn -nr

Ибо, есть мнение, что awk быстрее сортирует, чем sort на большом массиве

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

2. "Как соорудить сортировку внтри цикла awk ?"  +/
Сообщение от pavlinux (ok) on 02-Апр-13, 01:04 
> Ибо, есть мнение, что awk быстрее сортирует, чем sort на большом массиве

http://www.gnu.org/software/gawk/manual/html_node/Array-Sort...

Ответить | Правка | ^ к родителю #1 | Наверх | Cообщить модератору

3. "Как соорудить сортировку внтри цикла awk ?"  +/
Сообщение от Andrey Mitrofanov on 02-Апр-13, 22:23 
> Есть
>
 
> awk '$1 != "serverip" && ... куча условий ... { print $0
> }' $log | awk '{!a[$1]++}END{for(i in a) if ( a[i] >
> 400 ) print i,a[i] }'
>

> Нужно объединить два awk и рассортировывать i,a[i] по убыванию второго ключа....

куча условий ... { 
#Тут был: print $0
a[$1]++ #призовые очки тому, кто объяснит, на кой <--тут был !
}END{for(i in a) if ( a[i] >
400 ) print i,a[i] }' $log


С сортировкой -- сам. В GNU awk есть asort(), например.

PS: по поводу
>>  | sorn -nr

|sort |uniq -c| sort-nr |....  //Но да, достаточно awk-а

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

4. "Как соорудить сортировку внтри цикла awk ?"  +/
Сообщение от universite email(ok) on 29-Апр-13, 19:13 
Можно ли как-то объединить сравнение по трем подряд идущим ключам?

например, вместо :


awk -v ' $6 == "X" && $7 == "Y" && $8 == "Z" {... print $1 ... } ' $text

Использовать


awk -v ' $6$7$8 == "XYZ" {... print $1 ... } ' $text

?
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

5. "Как соорудить сортировку внтри цикла awk ?"  +/
Сообщение от universite email(ok) on 29-Апр-13, 19:54 
> Можно ли как-то объединить сравнение по трем подряд идущим ключам?

Не критично, awk довольно легко оптимизирует огромные конструкций условий.

Ответить | Правка | ^ к родителю #4 | Наверх | Cообщить модератору

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

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




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

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