如何用Linux命令从env.config取值替换app.config中的占位符
配置文件变量替换实现方法
需求
需要将env.config中的指定变量值,替换到app.config的对应占位符中,禁止使用source env.config命令(避免将env文件当作shell脚本执行),仅需替换AppName和Environment两个变量。
文件示例
env.config 内容
.... .... Environment=Development AppName=MyApp .... ....
app.config 内容
.... .... logName = logs/{AppName}/{Environment} .... ....
期望替换后app.config效果
.... .... logName = logs/MyApp/Development .... ....
实现脚本
# 从env.config中提取AppName和Environment的值 APP=$(grep AppName env.config | awk -F= '{print $2}') ENV=$(grep Environment env.config | awk -F= '{print $2}') # 将提取的值替换到app.config的对应占位符中 sed -i "s/{AppName}/$APP/" app.config sed -i "s/{Environment}/$ENV/" app.config
说明:脚本先通过
grep匹配目标变量行,再用awk以=为分隔符提取变量值,最后用sed的替换命令完成占位符替换,-i参数表示直接修改原文件。
内容的提问来源于stack exchange,提问作者Wahid Masud
相关产品推荐
相关产品推荐

