1. 需求
使用脚本动态修改global.json文件json内容中的LocalIp、Ip的值(不清楚IP具体的值)。
{
"LocalIp":"172.20.34.22",
"DemonPort":"19000",
"Consul":{
"Ip":"172.20.32.218",
"Port":"8500"
}
}
2. 解决办法
两种方法脚本如下:
#!/bin/bash
addr='172.20.32.210'
ip='172.20.32.210'
# 方法1
#sed -i 's!\("LocalIp":"\).*!\1172.20.32.200",!g' global.json
#sed -i 's!\("Ip":"\).*!\1172.20.32.207",!g' global.json
# 方法2
sed -i 's!\("LocalIp":"\).*!\1'"${addr}"'",!g' global.json
sed -i 's!\("Ip":"\).*!\1'"${ip}"'",!g' global.json
3. 遗留问题
对应嵌套json中重名字段LocalIp的修改,如何修改,待研究?
{
"LocalIp":"172.20.34.22",
"DemonPort":"19000",
"Consul":{
"LocalIp":"172.20.32.218",
"Port":"8500"
}
}