Я пытаюсь написать SED команды, чтобы заменить маркеры в файл со значениями из переменных окружения так:расширяющие переменные среды с SED
export my_var=foo
echo 'something {{my_var}} bar' | sed -r "s/\{\{(.*?)\}\}/$\1/g"
Я хочу, чтобы захватить имя маркера (my_var в этом случае), а затем замените значение переменной среды с тем же именем.
Возможно ли это? В приведенном выше отпечатке something $my_var bar
, а не something foo bar
, это то, что я хочу.
Я открыт для использования другого инструмента, такого как awk, если это невозможно с sed.
Спасибо, пример Perl именно то, что я искал – toby
Я также нашел [envsubst] (https://www.gnu.org/software/gettext/manual/html_node/envsubst- Invocation.html), он использует немного другой формат токена на входе, но имеет необходимую функциональность – toby