[Comm] Значение переменной в awk

Pavel Usischev =?iso-8859-1?q?usischev_=CE=C1_gmail=2Ecom?=
Вт Июн 14 09:21:02 MSD 2005


php-coder пишет:
>     Подскажите пожалуйста, как подставить значение переменной в
>     awk-выражение.

>     BEGIN=`awk '/set 3/{print NR+2}' Translation.m`
>     END=`awk '/set 4/{print NR-2}' Translation.m`

Вот эти, если экспортировать, будут видны в awk-программе через 
ENVIRON["BEGIN"] и ENVIRON["END"].

Другой вариант:

awk -v startnum=$BEGIN -v endnum=$END ' . . . '

Переменные startnum и endnum будут доступны в программе. С именами BEGIN 
и END будьте аккуратнее, в awk-программе это обозначения блоков кода, 
как переменную использовать не получится.

Третий вариант:

awk 'BEGIN {print '$BEGIN'}'

То есть использование переменной выносить за одинарные кавычки, в 
которых раскрытия переменных в (известных мне) shell не происходит.

-- 
С уважением,
Павел Усищев

-- 
С уважением,
Павел Усищев



Подробная информация о списке рассылки community