我试图在多行上获得一个模式。我想确保我在\ 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。谢谢
答案 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
仅匹配单行输入。