假设我有fileA
,里面有内容
Hello, this is some
random text REPLACEHERE and some more
random text
和包含内容的fileB
stuff that goes into
fileA, at that specific place
如何将 fileA
中的 REPLACEHERE
正确替换为 fileB
的内容?就在那个地方,就像我在做一个简单的正则表达式操作一样?
我得到的最接近的是
sed -i '/REPLACEHERE/r fileB' fileA
它只会在找到 REPLACEHERE
之后在行中追加 fileB,这是不好的。我需要将它准确地替换到位(我认为这就是 i
标志的实际用途)。
最佳答案
仅使用 sed
可能不会那么容易,我会使用 shell 变量/命令扩展:
sed -i "s/REPLACEHERE/$(cat fileB)/g" fileA
-i
表示更改将保存到 fileA
,而不是打印到 stdout
。
顺便提一下,注意 fileB
中的斜杠。如果有的话,他们将不得不转义。
关于regex - 如何使用 sed 将一个文件中的模式替换为另一个文件的内容?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14546949/