The OpenNET Project / Index page

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

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

"Вопрос по массивам в awk"  +/
Сообщение от BigEye on 02-Сен-09, 15:44 
BEGIN {
  patterns[1] = "/pattern1/"
  patterns[2] = "/pattern1/"
  ...
}
{
  for(i in patterns) {
   if($0 ~ patterns[i]) {
     //some logic
     //...
   }
  }
}

Почему-то в условии значение переменной не воспринимается как паттерн и условия не выполняется. Как правильно будет сделать? Смысл этого в том, что есть много паттернов, которые будут меняться, хотелось бы их вынести в отдельную переменную, что-то типа настроек. Логики ниже много, привел укороченный вариант, чисто для разъяснения вопроса.

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

 Оглавление

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


1. "Вопрос по массивам в awk"  +/
Сообщение от Pahanivo email(ok) on 02-Сен-09, 16:10 
>[оверквотинг удален]
>     //...
>   }
>  }
>}
>
>Почему-то в условии значение переменной не воспринимается как паттерн и условия не
>выполняется. Как правильно будет сделать? Смысл этого в том, что есть
>много паттернов, которые будут меняться, хотелось бы их вынести в отдельную
>переменную, что-то типа настроек. Логики ниже много, привел укороченный вариант, чисто
>для разъяснения вопроса.

а не проще все зделать на перле?

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

2. "Вопрос по массивам в awk"  +/
Сообщение от BigEye on 02-Сен-09, 16:15 
>а не проще все зделать на перле?

вариант. 1,5гига парсится за 6мин. как думаете на перле как будет? я погуглил как-то так в порядке убывания скорости:
sed
awk
perl

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

3. "Вопрос по массивам в awk"  +/
Сообщение от Pahanivo email(ok) on 02-Сен-09, 17:23 
>>а не проще все зделать на перле?
>
>вариант. 1,5гига парсится за 6мин. как думаете на перле как будет? я
>погуглил как-то так в порядке убывания скорости:
>sed
>awk
>perl

1) чем мерял? )))
2) метод "тупого перебора" он и в basic'е всего лишь метод тупого перебора и ничего более.
о какой скорости тут можно рассуждать мне вообще непонятно ))
3) по поводу перла: парсить разные паттерны и регексы намного проще и удобнее - ибо язык изначально под это заточен

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

4. "Вопрос по массивам в awk"  +/
Сообщение от Андрей (??) on 02-Сен-09, 18:48 
IMHO, то что Вы написали больше похоже на perl, чем на awk.
на awk это будет
/pattern1/ { some logic 1 } /pattern2/ { other logig } ... { all other }
Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

5. "Вопрос по массивам в awk"  +/
Сообщение от Andrey Mitrofanov on 02-Сен-09, 20:10 
>  patterns[1] = "/pattern1/"
>  patterns[2] = "/pattern1/"

Заменяем на:
patterns[1] = "pattern1"
patterns[2] = "pattern-кстати-2"
;) Ага?

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

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

Индекс форумов | Темы | Пред. тема | След. тема




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

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