2016-08-08 8 views
1

다음 샘플 파일과 정규식이 있습니다.정규식이 SunOS에서 {M, N}을 (를) 사용하여 일치하지 못했습니다.

testing.txt egrep을

egrep '[ ]{2,}' testing.txt 

위의 정규 표현식을 사용

testing     aa 
a bc de 
e      aa 
ba      Z 
testing     bb 
testing     ac 

내 정규 표현식은 줄 연속 된 공백을 찾으려고 시도합니다. 그러나 반환 된 결과는 비어 있습니다.

아래 정규식은 1 개 이상의 공백에 적용됩니다. 그러나 그것은 내가 원하는 것이 아닙니다. 시스템이 오래된 경우

egrep '[ ]+' testing.txt 
+0

어떤 egrep 버전을 사용하고 있습니까? 'egrep --version' –

+0

공백이 있습니까? 대괄호 표현식에 탭을 추가하십시오. –

+0

egrep --version이 잘못된 구문을 표시합니다. – Mox

답변

0

, this help reference 문제 설명 될 수 있습니다

전통적인 egrep을가 { 메타 문자을 지원하지 않았다을, 일부 egrep을 구현 대신 \{를 지원하므로 휴대용 스크립트는 피해야한다 {은 egrep 패턴이며 과 일치 시키려면 [{]을 사용해야합니다.

즉, grep '[ ]\{2,\}' testing.txt이 작동하지 않으면 Perl이나 GNU grep을 사용하여 원하는 것을 얻을 수 있습니다.

또한 egrep '[ ][ ]+' testing.txt은 현재 상황에서만 해결 방법 인 것으로 보이며 확장되지는 않지만 당분간 도움이 될 것입니다.

+1

나중에 불행히도, 그것은 회사의 서버 하하 그래서 내가 업그레이 드하는 힘이 없어 ... – Mox