如何使用sed替换一个文件中的模式,使用另一个文件的内容?

时间:2013-01-27 11:37:56

标签: regex unix text replace sed

假设我有fileA,其内容为

Hello, this is some
random text REPLACEHERE and some more
random text
带有内容的

fileB

stuff that goes into
fileA, at that specific place

如何使用REPLACEHERE的内容正确替换fileA内的fileB?正好在那个地方,就好像我正在做一个简单的正则表达式操作一样?

我最接近的是

sed -i '/REPLACEHERE/r fileB' fileA

只会在找到REPLACEHERE之后在行中附加fileB,这并不好。我需要将其完全替换(我认为这实际上是i标志)。

1 个答案:

答案 0 :(得分:2)

仅使用sed可能不那么容易,我会使用shell变量/命令扩展:

sed -i "s/REPLACEHERE/$(cat fileB)/g" fileA

-i表示更改将保存到fileA,而不是打印到stdout

顺便提一下fileB中的斜线。如果有,他们将不得不逃脱。