sed
仅带有 的命令g
:我知道它的sed 's/ab/bc/g'
作用,但如果没有s
,我不知道它会做什么。它似乎在终端中不起作用:
$ sed '/^c/d/g' word.txt
sed: -e expression #1, char 6: extra characters after command
答案1
通过向命令添加搜索条件,Sed 可以限制为文件中的行子集。搜索条件的形式为/search/
。因此,如果省略s
from -e 's/^c/d/g'
,它就完全变成另一个命令:-e '/^c/ d'
。
该d
命令删除该行并且不采用任何选项,这就是您收到“命令后有额外字符”错误的原因。
如果没有额外的/g
,此命令将删除以 'c' 开头的每一行:
$ cat t
c is what we want
d is not
this file has 3 lines.
$ sed -e 's/^c/d/g' t
d is what we want
d is not
this file has 3 lines.
$ sed -e '/^c/d' t
d is not
this file has 3 lines.