Вопрос по массивам в awk, BigEye, 02-Сен-09, 15:44 [смотреть все]BEGIN { patterns[1] = "/pattern1/" patterns[2] = "/pattern1/" ... } { for(i in patterns) { if($0 ~ patterns[i]) { //some logic //... } } }Почему-то в условии значение переменной не воспринимается как паттерн и условия не выполняется. Как правильно будет сделать? Смысл этого в том, что есть много паттернов, которые будут меняться, хотелось бы их вынести в отдельную переменную, что-то типа настроек. Логики ниже много, привел укороченный вариант, чисто для разъяснения вопроса.
|
- Вопрос по массивам в awk, Pahanivo, 16:10 , 02-Сен-09 (1)
>[оверквотинг удален] > //... > } > } >} > >Почему-то в условии значение переменной не воспринимается как паттерн и условия не >выполняется. Как правильно будет сделать? Смысл этого в том, что есть >много паттернов, которые будут меняться, хотелось бы их вынести в отдельную >переменную, что-то типа настроек. Логики ниже много, привел укороченный вариант, чисто >для разъяснения вопроса. а не проще все зделать на перле?
- Вопрос по массивам в awk, BigEye, 16:15 , 02-Сен-09 (2)
>а не проще все зделать на перле? вариант. 1,5гига парсится за 6мин. как думаете на перле как будет? я погуглил как-то так в порядке убывания скорости: sed awk perl
- Вопрос по массивам в awk, Pahanivo, 17:23 , 02-Сен-09 (3)
>>а не проще все зделать на перле? > >вариант. 1,5гига парсится за 6мин. как думаете на перле как будет? я >погуглил как-то так в порядке убывания скорости: >sed >awk >perl 1) чем мерял? ))) 2) метод "тупого перебора" он и в basic'е всего лишь метод тупого перебора и ничего более. о какой скорости тут можно рассуждать мне вообще непонятно )) 3) по поводу перла: парсить разные паттерны и регексы намного проще и удобнее - ибо язык изначально под это заточен
- Вопрос по массивам в awk, Андрей, 18:48 , 02-Сен-09 (4)
IMHO, то что Вы написали больше похоже на perl, чем на awk. на awk это будет /pattern1/ { some logic 1 } /pattern2/ { other logig } ... { all other }
- Вопрос по массивам в awk, Andrey Mitrofanov, 20:10 , 02-Сен-09 (5)
> patterns[1] = "/pattern1/" > patterns[2] = "/pattern1/" Заменяем на: patterns[1] = "pattern1" patterns[2] = "pattern-кстати-2" ;) Ага?
|