sed 只替换匹配组的行

Sep*_*ero 7 sed

目前,我有这个命令:

sed 's/\([^C]*\)/\1AB/'
Run Code Online (Sandbox Code Playgroud)

它在一行上的第一个“C”实例之前插入“AB”。但它也在每行末尾添加了“AB”而没有“C”。

我怎样才能让它只在找到“C”时进行编辑?

Gra*_*eme 5

简单地替换有C什么问题?

sed 's/C/ABC/'
Run Code Online (Sandbox Code Playgroud)

这只会替换第一个实例(如果你想全部替换它们,你会g在最后添加)。


Hau*_*ing 4

您需要一个地址过滤器:

sed '/C/s/\([^C]*\)/\1AB/'
Run Code Online (Sandbox Code Playgroud)