如何使用shell删除和更新第二个文件中的内容

问题描述 投票:-1回答:1

我有以下两个文件test.txttest1.txt.我想在test.txt下更新test1.txtabc.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
bash shell sh
1个回答
0
投票

如果您事先知道地址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
© www.soinside.com 2019 - 2024. All rights reserved.