sed:-e 表达式 #1,字符 1:未知命令:'|'

Mar*_*mbo 0 bash sed shell-script

当我将此代码放入终端时:

sed -i "|^if [[ -f /etc/skel/.bashrc ]]; then . /etc/skel/.bashrc; fi|d" ~/.bashrc
Run Code Online (Sandbox Code Playgroud)

我获得:

sed: -e expression #1, char 1: unknown command: '|'
Run Code Online (Sandbox Code Playgroud)

为什么?

sch*_*ity 8

您必须sed通过\在新分隔符之前添加反斜杠来表明您在删除命令中使用了不同的分隔符:

sed '\|text|d' file
Run Code Online (Sandbox Code Playgroud)

请参阅GNU Sed 手册中的通过文本匹配选择行