LINUX.ORG.RU

Помогите разобраться с AWK

 ,


0

1

Здравствуйте, пишу bash скрипт и никак не могу понять как найти с помощью awk строки, начинающиеся со значения одной из переменной окружения.

Например есть у меня строка SourceType=Custom. Сделал я переменную окружения.

echo $TASK
SourceType

И вроде

echo "SourceType=Custom" | awk -F '=' '{print ENVIRON["TASK"]}'

Выводит мне SourceType а команда

echo "SourceType=Custom" | awk -F '=' '/^SourceType/ {print $2}'

выводит мне Custom А вот объеденить эти две штуки в одну никак не получается

echo "SourceType=Custom" | awk -F '=' '/^ENVIRON["TASK"]/ {print $2}'

не выводит ничего, что я делаю не так?


ENVIRON в отборе работает буквально как строка, оно не обращается никуда.

awk -F '=' '{if ($1 == ENVIRON["TASK"]) print $2}'
anonymous
()
Ответ на: комментарий от anonymous

Спасибо, я бы до этого сам не допер

NordeN
() автор топика

Самое правильное, наверное, будет так:

echo "SourceType=Custom" | awk -F '=' "/^$TASK/ {print \$2}"

vodz ★★★★★
()
Ответ на: комментарий от NordeN

Это не работает

В интерактивном шелле работает, что легко проверить. Внутри скрипта работать не будет из-за незаэкранированной переменной $2 (правильный вариант в комменте выше)

annulen ★★★★★
()
Для того чтобы оставить комментарий войдите или зарегистрируйтесь.