Regex 删除sed匹配特殊正则表达式的行

Regex 删除sed匹配特殊正则表达式的行,regex,sed,match,Regex,Sed,Match,我尝试删除以一些可选特殊字符开头,后跟blubb的所有行: 这就是我要匹配的行: #blubb *blubb -blubb 布卢布 这应该可以,但不起作用:( 有人找到了正确的解决方案吗?使用以下sed命令: sed -i.old '/^[#*-]\{0,1\}blubb/d' special.conf 或 或 啊,是的\?和\+是GNU扩展。即使使用GNU-sed,我也不知道它们会如何工作。一旦使用反斜杠对它们进行转义,它们就失去了特殊意义(并且只有在指定了-r时才具有这些特殊意义)。您好,

我尝试删除以一些可选特殊字符开头,后跟
blubb
的所有行:

这就是我要匹配的行:

#blubb
*blubb
-blubb
布卢布

这应该可以,但不起作用:(

有人找到了正确的解决方案吗?

使用以下sed命令:

sed -i.old '/^[#*-]\{0,1\}blubb/d' special.conf


啊,是的
\?
\+
是GNU扩展。即使使用GNU-sed,我也不知道它们会如何工作。一旦使用反斜杠对它们进行转义,它们就失去了特殊意义(并且只有在指定了
-r
时才具有这些特殊意义)。您好,这对我来说也很好。但是我不明白选项-I.old和-E或-r的作用。谢谢-I用于内联编辑,-r或-E用于扩展正则表达式sed@chenchuk:用作创建用于内联编辑的备份副本的扩展。
sed -i.old '/^[#*-]\{0,1\}blubb/d' special.conf
sed -i.old -E '/^[#*-]?blubb/d' special.conf
sed -i.old -r '/^[#*-]?blubb/d' special.conf