如下有个 json 文件,想把其中 abc 节点中的 IP 给替换成 192.168.1.2, 如何替换?
abc":{
"a":true,
"IP":"192.168.1.1",
"c":10011,
"d":5,
"e":5
},
"def": {
"a": true,
"Server": [{
"Is": false,
"IP": "192.168.1.1",
"Port": 5577
}]
},
"ghi": {
"a": true,
"ka": {
"ServerIP": "192.168.11.236",
"SPort": 9092,
"Top": "ifaas-secondStructure",
"Gr": "ifaas-engine",
"Us": "",
"Pa": "",
"Sa": false
},
1
ly4572615 2019-04-18 10:10:07 +08:00
sed -n '/^ "IP"/p' test
|
2
css3 OP |
3
ly4572615 2019-04-18 10:31:10 +08:00
test 没错,可是你关键字没理解
|
4
truehyp 2019-04-18 10:34:04 +08:00
sed -n ":a;p;/\"abc\":{/{:c;n;/\"IP\":/{s/192.168.1.1/192.168.1.2/;ba};p;bc}" txt
|
5
geelaw 2019-04-18 10:38:40 +08:00 via iPhone 1
为什么不能用自然的方法解决呢?自然的方法是把文件解析好之后做结构化的操作,再序列化成文本。
不要指望不能处理 CF 语言的程序处理 CF 语言。用一大堆 adhoc 的性质去操作,虽然可以对目前手上的文件有效,但并不是长远的策略,每次先观察文件的特殊结构再写一段新的代码去处理,和手工处理只不过是五十步和百步的区别。 |
6
onetown 2019-04-18 17:46:36 +08:00
|