当模式包含管道pcregrep
运算符时,我注意到与|
进行多行匹配的行为非常不稳定。这是一些令人惊讶的行为的简单示例。第一个命令产生预期的行为,第二个命令应返回相同的结果,但不返回(以bash执行):
$ pcregrep -M -e '(foo\(\) {\n +return|zzzz)' ~/sandbox/test.txt
function foo() {
return blah();
$ pcregrep -M -e '(foo\(\) {\n +return|zzz)' ~/sandbox/test.txt
$
test.js(具有unix行尾的ASCII):
function foo() {
return blah();
}
const bar = () => {
return bleh();
}
这看起来像是pcregrep中的错误,也许我缺少一些明显的PCRE语法问题。
pcregrep version 8.39 2016-06-14