我有这样一个需要,每次吧一段json数据中的一行数据使用脚本输入的参数替换,替换
内容如下:
{
"CN": "liujw",
"key": {
"algo": "rsa",
"size": 2048
},
"names": [...
我有这样一个需要,每次吧一段json数据中的一行数据使用脚本输入的参数替换,替换
内容如下 cat user.json :
{
"CN": "liujw",
"key": {
"algo": "rsa",
"size": 2048
},
"names": [
{
"C": "CN",
"ST": "Guangdong",
"L": "Shenzhen",
"O": "sslvpn",
"OU": "developer center"
}
]
}
要替换的为“CN": 那行的”liujw",并且保留双引号和后面的逗号。比如替换后变成: "CN": "shitian",
因为sed中要使用参数替换,并且要保留替换内容带双引号。还是有点难度的,经过实验,使用如下脚本可以满足
sed -i 's!"CN": .*,$!"CN": "'"$1"'",!g' config/user.json
"CN": .*,$ 为匹配CN那一行,并且以,结尾
"'"$1"'",!g' config/user.json 的格式为最内层”双引号“->”单引号“->”双引号“
-
发表于 2023-04-27 13:57
- 阅读 ( 36 )