gpt4 book ai didi

macos - 在 OS X 上使用 sed 进行就地编辑

转载 作者:行者123 更新时间:2023-12-03 04:29:18 25 4
gpt4 key购买 nike

我想在 OS X 上使用 sed 编辑文件。我使用以下命令:

sed 's/oldword/newword/' file.txt

输出被发送到终端。 file.txt 未修改。使用以下命令将更改保存到 file2.txt:

sed 's/oldword/newword/' file1.txt > file2.txt

但是我不需要另一个文件。我只想编辑file1.txt。我怎样才能做到这一点?

我尝试过 -i 标志。这会导致以下错误:

sed: 1: "file1.txt": invalid command code f

最佳答案

您可以通过为其提供后缀来正确使用 -i 标志以添加到备份文件中。扩展您的示例:

sed -i.bu 's/oldword/newword/' file1.txt

将为您提供两个文件:一个名为 file1.txt 的文件包含替换内容,另一个名为 file1.txt.bu 的文件包含原始内容。

轻度危险

如果您想破坏性地覆盖原始文件,请使用以下内容:

sed -i '' 's/oldword/newword/' file1.txt
^ note the space

由于该行的解析方式,选项标志与其参数之间需要一个空格因为参数的长度为零。

除了可能会破坏你的原始版本之外,我不知道以这种方式欺骗 sed 有任何进一步的危险。但是,应该注意的是,如果 sed 的调用是脚本的一部分,则 Unix Way™ 将(恕我直言)非破坏性地使用 sed,测试它干净地退出,然后才删除无关的文件。

关于macos - 在 OS X 上使用 sed 进行就地编辑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7573368/

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