macOS上的Sed会生成带有-e后缀的额外文件

时间:2018-08-08 09:29:24

标签: bash macos sed

我正在尝试让sed用另一个文件的内容替换文件中的一行。使它起作用,但是就地替换会以某种方式产生带有后缀-e的额外文件。

这似乎只发生在macOS(High Sierra)上,而没有发生在Linux(Alpine)上,因为我试图在docker容器中重现此问题。

我的命令依次再现:

$ echo 'someline' > target_file.txt
$ echo 'replacementcontent' > replacement.txt
$ sed -Ei -e "\#^someline\$#{
r replacement.txt
d
}" target_file.txt
$ cat target_file.txt
replacementcontent
$ ls
replacement.txt   target_file.txt   target_file.txt-e

替换操作按预期工作,但是在Linux环境中target_file.txt-e不会出现。

我知道macOS和Linux sed之间存在差异,但这似乎是随机的,但我可能只是不了解。

为什么会发生这种情况,并且可以以不可知的方式编写命令(以便在macOS和Linux上都可以使用相同的命令)?

0 个答案:

没有答案