我有以下两个文件test.txt
和test1.txt.
我想在test.txt
下更新test1.txt
到abc.com
的数据,但是,首先它必须删除现有数据,所以最终输出看起来像输出文件部分下的test1.txt
的test.txt
10.100.4.10
10.100.4.11
10.100.4.12
test1.txt的
[abc.com]
10.100.44.10
10.100.44.11
[xyz.com]
10.100.55.10
10.100.55.11
[等等..]
输出文件
test1.txt的
[abc.com]
10.100.4.10
10.100.4.11
10.100.4.12
[xyz.com]
10.100.55.10
10.100.55.11
如果您事先知道地址abc.com
并且条目由空行分隔,则使用以下sed命令。第一个删除abc.com和第一个空行之间的行,第二个删除你想要的文本test1.txt。
$ sed '/^\[abc\.com\]/,/^$/{/^\[abc\.com\]/!{/^$/!d}}' test.txt | sed '/^\[abc.com\]/r test1.txt'
[abc.com]
10.100.4.10
10.100.4.11
10.100.4.12
[xyz.com]
10.100.55.10
10.100.55.11