grep与多行扩展正则表达式

时间:2014-09-11 06:45:52

标签: regex grep

我试图在多行上获得一个模式。我想确保我在\ r \ n中寻找结尾的行,并且在某些时候有特定的文本。我遇到的两个问题是我经常在分组中得到无与伦比的括号,或者在没有分数时得到肯定的匹配。这是两个简单的例子

echo -e -n "ab\r\ncd" | grep -U -c -z -E $'(\r\n)+.*TEST'

grep:不匹配(或\(
究竟什么是无与伦比的?我不明白。


echo -e -n "ab\r\ncd" | grep -U -c -z -E $'\r\n.*TEST'

1
字符串中没有TEST,为什么这会为匹配返回1的计数?


我在Ubuntu 14上使用grep(GNU grep)2.16。谢谢

1 个答案:

答案 0 :(得分:0)

而不是-E您可以在gnu grep中使用-P for PCRE支持来使用这样的高级正则表达式:

echo -ne "ab\r\ncd" | ggrep -UczP '\r\n.*TEST'
0

echo -ne "ab\r\ncd" | ggrep -UczP '\r\n.*cd'
1

grep -E仅匹配单行输入。