使用Sed在匹配模式的位置插入文件内容

时间:2018-10-30 09:42:26

标签: linux unix sed

我有一个名为source.txt的文件,其中包含以下几行:-

the
quick
brown
fox
jumped
over
the
lazy
dog

我想搜索“ fox”行并将其以及随后的所有行删除,直到“ over”行为止。然后,我想在这些行的位置插入另一个文件(fruit.txt)的内容。水果包含:-

apples
bananas
pears

所以结果应该是一个看起来像这样的文件:-

the
quick
brown
apples
bananas
pears
the
lazy
dog

我认为使用sed命令可以做到这一点。

此命令成功删除了以下行:-

sed -i -e '/fox/,/over/d' source.txt 

该命令几乎可以正常工作,但是将fruit.txt文件的内容插入了三次,每行匹配一次:-

sed -i -e '/fox/,/over/{r fruit.txt' -e 'd}' source.txt

任何帮助将不胜感激!

1 个答案:

答案 0 :(得分:-1)

在这种情况下,您必须通过此命令删除不需要的

sed -i -e '/fox/,/over/d' source.txt

然后通过此命令添加所需的内容

sed -i -e '/brown/ r fruit.txt' source.txt

我希望它将对您有帮助