![这个命令有什么作用? sed '/ab/bc/g'](https://linux22.com/image/212572/%E8%BF%99%E4%B8%AA%E5%91%BD%E4%BB%A4%E6%9C%89%E4%BB%80%E4%B9%88%E4%BD%9C%E7%94%A8%EF%BC%9F%20sed%20'%2Fab%2Fbc%2Fg'.png)
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.