У меня есть файл белого списка переменных env, который выглядит следующим образом:
ENV_A
ENV_B
ENV_C
У меня есть другой файл filetoreplace.txt
, который (скажем так) выглядит так:
asdfasdfasdfasdf{{ENV_A}}asdfasdfasdfasdfasdf
adsfasdf
asdf{{ENV_B}}
asdf{{ENV_A}}
adsfasdfdsfdf{{ENV_C}}
Я хочу придумать команду sed (в одну строку), которая читает имена переменных из файла и выполняет замену.
Для этой среды
ENV_A=1
ENV_B=2
ENV_C=3
Это будет вывод с учетом указанного выше файла
asdfasdfasdfasdf1asdfasdfasdfasdfasdf
adsfasdf
asdf2
asdf1
adsfasdfdsfdf3
Я думаю, что это примерно так:
< whitelist | while read var; do
sed -i 's/{{'"$var"'}}/'${!var}'/g' filetoreplace.txt
done
Ищете немного кода в гольф, чтобы сделать это в один лайнер здесь