我没有使用命令's/I/You/g',那么为什么它在第二行中将I改为you?我运行代码
$ sed 's/I/You/' <oldfile >newfile $ cat newfile You am Likith You am Likith
上面应该印着“你是Likith我是Likith”你知道吗?
xam8gpfp1#
g标志替换单行中的所有匹配项。在你的例子中,每行只有一个I出现。你的源文件有很多行,每一行都有一个出现,你应该知道sed对每一行应用相同的规则。只需在一行I示例上添加第二个I示例,就可以尝试我告诉你的内容:你应该只换第一个。
g
I
5sxhfpxr2#
这可能对你有用(GNU sed):
sed -z 's/I/You/' file
使用-z命令选项将(很有可能)将整个文件视为一行,因此只有第一个匹配将被替换。请参阅此处获取文档。
-z
2条答案
按热度按时间xam8gpfp1#
g
标志替换单行中的所有匹配项。在你的例子中,每行只有一个I出现。你的源文件有很多行,每一行都有一个出现,你应该知道sed对每一行应用相同的规则。
只需在一行
I
示例上添加第二个I
示例,就可以尝试我告诉你的内容:你应该只换第一个。5sxhfpxr2#
这可能对你有用(GNU sed):
使用
-z
命令选项将(很有可能)将整个文件视为一行,因此只有第一个匹配将被替换。请参阅此处获取文档。