bash perl “与”运算符

bash perl “与”运算符

输出:

apple text1
peach text2
banana text3
melon text4

为了删除以“苹果”或“香蕉”开头的行,我输入:

perl -pe 's/^apple.*\n|^banana.*\n//g'

并且输出是正确的:

peach text2
melon text4

但我想删除最终的“木瓜”或“芒果”。为了实现这一点,我应用了德摩根定律:

perl -pe 's/^(?!peach).*\n&^(?!melon).*\n//g'

但是什么都没有删除,因为“|”代表“或”,而“&”不起作用。bash
perl 命令中什么符号代表“和”?

答案1

您可以像这样连接两个匹配的表达式:

perl -pe 's/^(?!peach)(?!melon).*\n//g'

或者你可以像这样使用“或”运算符:

perl -pe 's/^(?!(peach|melon)).*\n//g'

相关内容