2016-10-22 6 views
1

내 시험 맥 OS에서 작동하지 : 풍부한 $ 고양이정규식 [^ ..] 여기

abc 
def 
aef 
bde 

richadminsMini foofile : ~ 풍부한 $ 파일

foofile: ASCII text 
foofile

richadminsMini : ~ rich $ ggrep -V ggrep (GNU grep) 2.26 포장 된 홈 브루 저작권 (C) 2016 자유 소프트웨어 재단, 주식

richadminsMini : ~ 풍부한 $의 ggrep 'B'

abc 
bde 

richadminsMini foofile : ~ 풍부한 $의 ggrep 'A'

foofile
abc 
aef 

richadminsMini:~ rich$ ggrep '[ab]' foofile 
abc 
aef 
bde 
richadminsMini:~ rich$ ggrep '[^ab]' foofile 
abc 
def 
aef 
bde 

줄 1, 3 및 4가 제외 될 것으로 예상됩니다. 내 쉘은 bash입니다. 무슨 일이야?

답변

2

긍정적 인 표현을 grep -v '[ab]'으로 바꾸거나 정규 표현식을 전체 일치로 변경하십시오 (예 : grep -E '^([^ab]+)$').

문제는 a 또는 b가없는 부분 일치를 찾는 것입니다. 예를 들어 abc의 경우 'c'와 일치하므로 줄이 포함됩니다.

기본 플랫폼 grep을 사용할 수 있습니다. 그건 문제가 아니야.

+1

Jameson이 작성한 내용을 추가하기 만하면 ggrep은 "어딘가에/어딘가에있는 비 -a 또는 비 -b 문자가있는 모든 줄"을 찾고 있습니다. 따라서 리턴되지 않은 유일한 라인은 "a", "aa", "baba"등과 같이 보입니다. – Mort