shell 为什么sed在kali linux上取代了所有没有g命令的单词

gstyhher  于 2023-06-24  发布在  Shell
关注(0)|答案(2)|浏览(99)

我没有使用命令's/I/You/g',那么为什么它在第二行中将I改为you?
我运行代码

$ sed 's/I/You/' <oldfile >newfile
$ cat newfile
You am Likith
You am Likith

上面应该印着“你是Likith我是Likith”
你知道吗?

xam8gpfp

xam8gpfp1#

g标志替换单行中的所有匹配项。在你的例子中,每行只有一个I出现。
你的源文件有很多行,每一行都有一个出现,你应该知道sed对每一行应用相同的规则。
只需在一行I示例上添加第二个I示例,就可以尝试我告诉你的内容:你应该只换第一个。

5sxhfpxr

5sxhfpxr2#

这可能对你有用(GNU sed):

sed -z 's/I/You/' file

使用-z命令选项将(很有可能)将整个文件视为一行,因此只有第一个匹配将被替换。
请参阅此处获取文档。

相关问题