【发布时间】:2017-10-04 22:02:37
【问题描述】:
假设我有一个名为 original.txt 的文件,其中包含以下内容:
红色
蓝色
水
食物
树
灰色
白色
我还有一个名为 new.txt 的文件,其中包含以下内容:
绿色
黑色
黄色
紫色
现在我想编写一个脚本,用new.txt 的内容替换original.txt 中blue 和gray 之间的行,所以它给了我这个结果:
红色
蓝色
绿色
黑色
黄色
紫色
灰色
白色
我为此编写了这段代码(新文件的名称并不总是相同,因此它存储在一个变量中):
newtext="new.txt"
sed -i "/blue/,/gray/{
r $newtext
d
}" original.txt
但是,当运行它时,我得到了这个废话:
red
green
black
yellow
purplegreen
black
yellow
purplegreen
black
yellow
purplegreen
black
yellow
purplegreen
black
yellow
purplewhite
我做错了什么?
【问题讨论】:
-
您只想插入第二个文件中的行一次,而不是每次遇到范围内的行时。