【发布时间】:2017-07-05 18:23:50
【问题描述】:
我正在尝试替换 yml 文件中的一些变量。
Samepl.yml
spring:
metadataMap:
instanceId: ${spring.application.name}:${randomvalue}
client:
version: 1.0
myval: {{ myVal }}
我正在使用以下命令替换双括号内的所有值,例如:{{ var }} 使用同名的环境变量,即值:${var} 如果变量未定义,它应该会失败。但是没有运气
cat sample.yml | sed -e "s/{{ \(.*\) }}/${\1:?}/g" > /tmp/a
有什么建议吗?
【问题讨论】:
-
当shell扩展双引号内的字符串发送给sed时,它不知道sed会将
\1解析成什么。 -
使用合适的模板工具,而不是
sed。