我有一个这样的文件:
test.json

{..
}
  "Naveen": {
   "ip_addr": "INET;192.168.1.3;5001",
   "enable": 1,
   "mode": "emulate"
  },

我需要regex匹配Naveen然后下一个元素mode并将模式值从emulate更改为xyz
失败的解决方案:
sed '/^Naveen$/{$!{N;s/^Naveen\nemulate$/xyz\nBe/;ty;P;D;:y}}'
cat test.json | tr '\n' '\r' | sed -e 's/Naveen\remulate/xyz\rBe/' | tr '\r' '\n'
我犯了什么错?

最佳答案

你可以试试这个sed

sed '/"Naveen": {/{:loop; N; s/emulate/CHANGED/g; /}/b; b loop;}' yourfile.json

09-25 15:51