在OSX / bash上查找并替换文件中的文本

时间:2013-11-14 06:22:07

标签: macos bash

我正在尝试使用变量$ ourpath的内容替换文件中的文本,以便替换目录路径。

    sed -e "s/__REPLACE_THIS_PATH__/${ourpath}/" com.plex.plexconnect_daemon.bash.plist  > com.plex.plexconnect_daemon.bash.plist

但是当我运行它时,它只是删除文件的内容,或者用零长度文件覆盖它。

有什么想法吗?

1 个答案:

答案 0 :(得分:2)

您无法将输出重定向到输入文件。当重定向发生时,文件被截断,所以没有什么可读的。写入其他文件然后重命名,或使用-i选项进行sed:

sed -i.bak -e "s/__REPLACE_THIS_PATH__/${ourpath}/" com.plex.plexconnect_daemon.bash.plist

这会将.bak后缀添加到原始文件中,并将结果放入具有原始名称的新文件中。