输出:
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'