2014-09-11 3 views
0

여러 줄로 패턴을 가져 오려고합니다. 내가 찾고있는 라인이 \ r \ n에서 끝나고, 어떤 시점에서 그 다음에 오는 특정 텍스트가 있음을 확인하고 싶습니다. 내가 겪었던 두 가지 문제는 그룹화에서 괄호 안의 짝이 맞지 않는 경우이거나 그룹이 없을 때 긍정적 인 일치를 얻는 것입니다. 다음은 두 가지 간단한 예입니다.

여러 줄에 걸쳐 확장 된 정규 표현식을 사용하는 grep

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

그렙 :?. 일치하지 않는 (\ (
정확히이 타의 추종을 불허 내가 그것을 얻을하지 않습니다


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

1
테스트가 없습니다. 문자열에서 왜 이것이 일치 항목에 대해 1을 계산합니까?

: 나는 우분투에 그렙에게 (14) 덕분에이 같은 고급 정규식을 사용하는 GNU 그렙에서 PCRE 지원을 위해 -P을 사용할 수 있습니다 대신 -E

답변

0

을 (GNU의 GREP) 2.16을 사용하고


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

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

grep -E 한 줄 입력에서만 일치합니다.

관련 문제