删除具有多个搜索模式的perl行

hpl*_*dur -1 bash perl solaris

我试图找到一种方法来使用perl来删除包含以下内容的行:

errors:
mirror
raid*
pond
Run Code Online (Sandbox Code Playgroud)

我找到了:

perl -pi -e "s,errors:,,"
Run Code Online (Sandbox Code Playgroud)

有没有办法在一个命令中指定我正在寻找的所有模式?

and*_*lrc 5

既然你提到Perl就可以使用:

perl -ne 'print unless /errors:|mirror|raid\*|pond/'
Run Code Online (Sandbox Code Playgroud)

另外你可以使用sed或grep:

sed '/errors:\|mirror\|raid\*\|pond/d'
Run Code Online (Sandbox Code Playgroud)

或者grep with -vrerse:

grep -v 'errors:\|mirror\|raid\*\|pond'
Run Code Online (Sandbox Code Playgroud)

您可以将-inplace标志添加到sed和Perl