gpt4 book ai didi

bash - 将 sed 's/c/d/' myFile 的输出重定向到 myFile

转载 作者:行者123 更新时间:2023-11-29 08:45:28 27 4
gpt4 key购买 nike

我在脚本中使用 sed 进行替换,我想让被替换的文件覆盖该文件。通常我认为你会使用这个:

% sed -i 's/cat/dog/' manipulate
sed: illegal option -- i

但是如您所见,我的 sed 没有该命令。

我试过这个:

% sed 's/cat/dog/' manipulate > manipulate

但这只会将 manipulate 变成一个空文件(有道理)。

这个有效:

% sed 's/cat/dog/' manipulate > tmp; mv tmp manipulate

但我想知道是否有一种标准方法可以将输出重定向到与输入相同的文件中。

最佳答案

我通常使用第三种方式,但有一个重要的变化:

$ sed 's/cat/dog/' 操纵 > tmp && mv tmp 操纵

即将 ; 更改为 && 因此只有在 sed 成功时才会发生移动;否则,一旦您在 sed 语法中输入错误,您就会丢失原始文件。

注意!对于那些阅读标题并错过 OP 约束的人“我的 sed 不支持 -i:对于大多数人, sed 将支持 -i,所以最好的方法是:

$ sed -i 's/cat/dog/' 操作

关于bash - 将 sed 's/c/d/' myFile 的输出重定向到 myFile,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2585438/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com