2013-12-16 2 views
1

grep을 사용하여 목록의 특정 단어를 찾으려고합니다. 나의 이해가 정확한지 목록grep과의 결합 및 차이점

aa 
der 
bb 
abc ref 

을 포함한다고 가정 해 봅시다 ,

cat file | grep '[a-z&&[^m-r]]' 

aa and bb 

가 (에에서 모든 문자와 일치 반환해야합니다 (내가 그렙 -E와 함께이 시도) z, m - r 제외). 하지만 나는 아무것도 얻지 못하고있다. 여기에 뭔가 빠졌어?

+0

당신이 일치하려는 패턴을 적어주세요. – Marc

+0

m ~ r을 제외한 a ~ z 사이의 문자/단어. –

+0

정규식에 교차 연산자가 없습니다. 존재한다면, 그것은 하나의 (이중이 아닌)'&'일지 모르지만 연산자는 문자 클래스 내에서 어쨌든 사용할 수 없습니다. – tripleee

답변

1

부정적인 미리보기를 사용할 수 있습니다. 말하는 :

grep -P '^[a-z](?!.*[m-z])' filename 

이 입력

aa 
bb 

을 반환합니다.

+0

왜 그렇게 복잡한가요? 요구 사항에 대한 나의 해석은'^ [a-ls-z] * $'를 제안 할 것이다. – tripleee

1

당신은 방금 -v 스위치를 사용하여 그렙 경기를 반전 할 수 :

cat myfile.txt | grep -v '[m-r]' 

또는 배관없이을 :

grep -v '[m-r]' myfile.txt