gpt4 book ai didi

bash - sed 不替换行

转载 作者:行者123 更新时间:2023-11-29 08:59:33 25 4
gpt4 key购买 nike

我有一个包含 1 行文本的文件,名为 output。我有文件的写入权限。我可以毫无问题地从编辑器中更改它。

$ cat output
1
$ ls -l o*
-rw-rw-r-- 1 jbk jbk 2 Jan 27 18:44 output

我想做的是用新值替换此文件中的第一行(也是唯一一行),1 或 0。在我看来,sed 应该是完美的选择:

$ sed '1 c\ 0' output
0
$ cat output
1

但它永远不会更改文件。我试过它在反斜杠处分两行,并用双引号引起来,但我无法让它在第一行放置 0(或其他任何内容)。

最佳答案

Sed 对流进行操作并将其输出打印到标准输出。

它不修改输入文件。

当您想在文件中捕获其输出时,通常会这样使用:

#
# replace every occurrence of foo with bar in input-file
#
sed 's/foo/bar/g' input-file > output-file

以上命令调用sedinput-file并将输出重定向到名为output-file 的新文件.

根据您的平台,您可以使用 sed 的 -i就地修改文件的选项:

sed -i.bak 's/foo/bar/g' input-file

注意:

并非所有版本的 sed 都支持 -i .

此外,不同版本的sed 实现-i不同。

在某些平台上,您必须指定一个备份扩展(在其他平台上则不必)。

关于bash - sed 不替换行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14553804/

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