параметр в AWK

Программирование на sh, быть может немного про альтернативные языки
Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
mr-susi
проходил мимо
Сообщения: 3
Зарегистрирован: 2012-11-23 7:22:48

параметр в AWK

Непрочитанное сообщение mr-susi » 2012-11-23 7:37:22

как передать параметр в AWK?

если он не совпадает с параметром командной строки, все примеры, которые я видел, используют строковую константу. В данном случае я хочу выбрать строку из потока по подстроке, значение которой вычисляется здесь же в ksh по другому awk.

awk '/пример1/ {print}'

но строка "пример1" вычисляется в другом месте и не совпадает с параметром $1 скрипта и это нужно сделать в цикле?

Хостинговая компания Host-Food.ru
Хостинг HostFood.ru
 

Услуги хостинговой компании Host-Food.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/

kpp
лейтенант
Сообщения: 613
Зарегистрирован: 2009-08-05 16:10:46
Откуда: Украина Днепропетровск-Киев
Контактная информация:

Re: параметр в AWK

Непрочитанное сообщение kpp » 2012-11-23 10:51:41

Параметры в AWK можно передавать так:
1.

Код: Выделить всё

awk '{print a,b,c}' a=1 b=2 c=3 file_name
2.

Код: Выделить всё

awk -v a=1 -v b=2 -v c=3 '{print a,b,c}' file_name
Нет, ребята, я не гордый. Не загадывая вдаль, так скажу: зачем мне орден? Я согласен на медаль.

mr-susi
проходил мимо
Сообщения: 3
Зарегистрирован: 2012-11-23 7:22:48

Re: параметр в AWK

Непрочитанное сообщение mr-susi » 2012-11-23 13:15:01

большое спасибо, что-то я наверное не дочитал в доках, можно еще вопрос почему на переменной nt

Код: Выделить всё

12.123.12.120:58573 12345/fb
12.123.12.12:5857 4321/fb
не работает выборка?
k=4321
nd=`echo "$nt" | awk -v a=$k 'BEGIN {l=length(a)} a==substr($2,1,l) {print $0} END {print l}'`
чувствую ошибка в

Код: Выделить всё

a==substr($2,1,l)
а понять в чем не могу

kpp
лейтенант
Сообщения: 613
Зарегистрирован: 2009-08-05 16:10:46
Откуда: Украина Днепропетровск-Киев
Контактная информация:

Re: параметр в AWK

Непрочитанное сообщение kpp » 2012-11-23 13:59:02

А что значит не работает?
Работает.
Только проще сделать например так:

Код: Выделить всё

echo "${nt}" | grep "^[^ ]* ${k}\/"
Нет, ребята, я не гордый. Не загадывая вдаль, так скажу: зачем мне орден? Я согласен на медаль.

mr-susi
проходил мимо
Сообщения: 3
Зарегистрирован: 2012-11-23 7:22:48

Re: параметр в AWK

Непрочитанное сообщение mr-susi » 2012-11-27 13:14:05

спасибо, намек понял, а то все на awk зациклился, совсем про grep забыл )))