有配置文件config.ini,内容如下:
[host]
host_conf=appts.xxxx.com
我想要修改host_conf=appts.xxxx.com(预生产环境)的内容为host_conf=appapi.xxxx.com(线上环境)
配置脚本如下:
host=appapi.xxxx.com 测试数据 host_env="hostconf=${host}" #这里注意使用双引号 line=$(sed -n '/host_conf/=' config.ini) #获取要修改文件的行号 newline=$(expr $line - 1)#计算插入文件的新的位置(后面使用追加方式修改文本,故这里上 line-1) sed -i "$line d" config.ini#删除行 sed -i "${newline} a\${host_env}" config.ini#将拼接好的字符串写入行
执行效果:
文件修改生效