我已经在代码中配置了服务器实例
"instance": [
{ "address": 127.0.0.1,
"port": 6514
},
{"address": 127.0.0.1,
"port": 6515
}
]
我还有一个文件(/root/home/inst.txt),其格式为
{ "address": 127.0.0.1,
"port": 6514
},
{"address": 127.0.0.1,
"port": 6515
},
{"address": 127.0.0.1,
"port": 6516
}
我想从文件代码中替换服务器实例。我试过
sed -e '/"instances": \[/,/\]/{/r /root/home/inst.txt/!d}'
但失败了
答案1
实际上,最好使用能够理解您的(几乎但不完全是 JSON?)文件格式的工具。
但是,我思考你想要的是
sed -e '/^"instance": \[/,/^]/{/^"instance": \[/{p;r /root/home/inst.txt' -e '};/^]/!d}' code
那是:
^"instance": \[
匹配和之间的行范围^]
(请注意,我添加了行首锚点;您可能认为这些不是必需的)页打印范围的第一行,然后read 并将内容放入队列,
inst.txt
以便在循环结束时插入删除除终止符之外的范围内的行
]
用 分割表达式-e
可以防止该};/^]/!d}
部分被视为要读取的文件名的一部分。