替换文本,遇到相同的,该怎么处理

2019-04-18 09:40:52 +08:00
 css3

如下有个 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
	},

1599 次点击
所在节点    程序员
7 条回复
ly4572615
2019-04-18 10:10:07 +08:00
sed -n '/^ "IP"/p' test
css3
2019-04-18 10:30:07 +08:00
@ly4572615 假如文件名是 test

sed -n '/^ "192.168.1.1"/192.168.1.2' test ?????这个意思吗
ly4572615
2019-04-18 10:31:10 +08:00
test 没错,可是你关键字没理解
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
geelaw
2019-04-18 10:38:40 +08:00
为什么不能用自然的方法解决呢?自然的方法是把文件解析好之后做结构化的操作,再序列化成文本。

不要指望不能处理 CF 语言的程序处理 CF 语言。用一大堆 adhoc 的性质去操作,虽然可以对目前手上的文件有效,但并不是长远的策略,每次先观察文件的特殊结构再写一段新的代码去处理,和手工处理只不过是五十步和百步的区别。
onetown
2019-04-18 17:46:36 +08:00
css3
2019-04-19 13:06:05 +08:00
@onetown 官方文档没有找到我先要的解决办法呀😭

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/556271

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX