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

时间:2017-12-19 06:46:36

标签: bash shell sh

我有以下两个文件test.txttest1.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

1 个答案:

答案 0 :(得分: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