sed 通过变量替换固定内容,并且保留“双引号”

我有这样一个需要,每次吧一段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 )

你可能感兴趣的文章

相关问题

0 条评论

请先 登录 后评论
shitian
shitian

662 篇文章

作家榜 »

  1. shitian 662 文章
  2. 石天 437 文章
  3. 每天惠23 33 文章
  4. 小A 29 文章