我正在尝试使用变量$ ourpath的内容替换文件中的文本,以便替换目录路径。
sed -e "s/__REPLACE_THIS_PATH__/${ourpath}/" com.plex.plexconnect_daemon.bash.plist > com.plex.plexconnect_daemon.bash.plist
但是当我运行它时,它只是删除文件的内容,或者用零长度文件覆盖它。
有什么想法吗?
答案 0 :(得分:2)
您无法将输出重定向到输入文件。当重定向发生时,文件被截断,所以没有什么可读的。写入其他文件然后重命名,或使用-i
选项进行sed:
sed -i.bak -e "s/__REPLACE_THIS_PATH__/${ourpath}/" com.plex.plexconnect_daemon.bash.plist
这会将.bak
后缀添加到原始文件中,并将结果放入具有原始名称的新文件中。