在没有备份文件的情况下使用sed -i Mac OSX

Cat*_*ath 4 macos sed

我发现了这篇文章:OSX和GNU / Linux之间sed的变体

没有备份文件的SED

后者提供了在Mac OSX上使用sed -i的解决方案,这样它就不会在搜索和替换命令上创建后退文件。

例如,请注意-i选项后的单引​​号空格单引号,以指定长度为零的扩展名:

sed -i ' ' 's/foo/|bar/g' test.html
Run Code Online (Sandbox Code Playgroud)

我的问题-这确实为我创建了一个备份文件,并且为备份文件提供了与我的输入文件“ test.html”相同的名称。

我需要对许多文件运行搜索/替换,并且我不希望备份文件。

这是我的实际命令:

sed -i ' ' "s|research/projects/vertebrategenome/havana/|science/groups/vertebrate-annotation|g" test2.html
Run Code Online (Sandbox Code Playgroud)

在哪里获得一个名为“ test2.html”的备份文件

Ati*_*ifm 5

在Mac上,您将获得sed的BSD版本。它需要包含一个空字符串作为-i的参数。请注意,在linux上,很高兴接受不带扩展名的-i。

在Linux上:

sed -i 's|StringToReplace|ReplacedString|'
Run Code Online (Sandbox Code Playgroud)

在MacOSX / * BSD上

sed -i '' 's|StringToReplace|ReplacedString|'
Run Code Online (Sandbox Code Playgroud)

注意,您想要一个空字符串('')而不是一个空白('')。