在shell脚本中使用sed工具时,如何避免使用`-e`创建额外文件?

时间:2016-10-18 09:26:33

标签: bash macos shell sed

我在shell脚本中使用sed命令来编辑&在osx(unix)环境中替换xml文件的某些文件内容。有什么办法可以避免sed使用-e创建临时文件吗?我在脚本中执行以下操作以使用sed编辑文件。

sed -i -e 's/abc/xyz/g' /PathTo/MyEditableFile.xml

以上sed命令效果很好但会创建一个额外的文件,因为/PathTo/MyEditableFile.xml-e

如何避免在-e处创建额外文件?

我尝试了一些选项,例如设置sed的临时文件夹路径,以便在/tmp/中创建临时文件。像这样:

sed -i -e 's/abc/xyz/g' /PathTo/MyEditableFile.xml >/tmp

但似乎无法正常工作

1 个答案:

答案 0 :(得分:1)

当您正在编辑文件(-i)时,OS X sed需要强制备份文件名。

您可以使用 - i ""解决此问题:

sed -i "" -e 's/abc/xyz/g' /PathTo/MyEditableFile.xml