2014-09-11 17 views
0

我想通過多行獲取模式。我想確保我正在查找的行以\ r \ n結尾,並且在某個時刻有特定的文本。我遇到的兩個問題是我經常在分組中獲得無與倫比的括號,或者在沒有分組時我會得到正面匹配。這裏有兩個簡單的例子。

在多行上擴展正則表達式的grep

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的匹配計數?


我用grep(GNU的grep)2.16在Ubuntu 14.感謝

回答

0

相反的-E可以使用-P爲PCRE支持GNU grep的使用正則表達式先進像這樣:

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

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

grep -E只匹配單行輸入。