我在脚本中使用sed做一个替换,我想要替换的
文件覆盖该
文件。通常我认为你会用这个:
% sed -i 's/cat/dog/' manipulate
sed: illegal option -- i
但是,您可以看到我的sed没有该命令。
我试过这个:
% sed 's/cat/dog/' manipulate > manipulate
但这只是把操作变成一个空文件(有意义)。
这样做:
% sed 's/cat/dog/' manipulate > tmp; mv tmp manipulate
但是我想知道是否有一种标准的方法将输出重定向到输入的相同文件中。
我通常使用第三种方式,但有一个重要的变化:
$ sed’s / cat / dog /’manipulate> tmp&&& mv tmp操纵
即改变到&&所以这个举动只有在sed成功的时候才会发生;否则,一旦在sed语法中输入错字,您将丢失原始文件。
注意!对于那些阅读标题,缺少OP的约束“我的sed不支持-i”:对于大多数人来说,sed将支持-i,所以最好的方法是:
$ sed -i的/ cat / dog /’操纵
原文链接:https://www.f2er.com/bash/387514.html