2014-03-04 2 views
3

폴더의 여러 파일을 grep하고 싶습니다. 나는 pcap 파일과 gziped 파일 같은 큰 파일을 제외하고 모두 grep을 원한다. 그래서 나는 노력하고있다 :bash에서 예외와 함께 와일드 카드를 사용하려면 어떻게해야합니까?

$ grep foo !({*pcap*,*gz*}) 

그러나 그것은 작동하지 않는다. gziped 파일을 피하는 동안, 셸 확장 !({*pcap*,*gz*})은 실제로 pcap 파일을 반환합니다. 모든 아이디어를 어떻게 pcap 및 gziped 파일을 제외한 모든 파일을 포함하도록하십시오? 현재 디렉토리를 가정

:

+0

@fedorqui 보인다. 나는 0에있다! – devnull

+0

@devnull 요즘 Meta에서 닫는 것에 대해 많은 이야기가 있습니다. 나는 궁극적 인 해결책이 하루에 1 개의 가까운 투표와 50 개의 리뷰 토큰을 가짐을 확신한다. – fedorqui

+0

@fedorqui 1 개의 가까운 표가있는 단점은 시스템이 닫히지 않고 응답하지 않는 FAQ로 넘치게 될 것이다. 어느 쪽도 의미가 없다. – devnull

답변

5

당신은

grep foo !(*pcap*|*gz*) 

하는 방법 1. GLOBIGNORE 매개 변수는 글로브 확장의 결과에서 제외 할 파일을 나열 pcapgz 파일

+1

'shopt -s extglob'로 확장 패턴을 활성화해야합니다. – chepner

+0

Thx 작동합니다. :-) –

6

를 제외하는 것으로 변경해야 비어 있음 :

$ touch foo1 foo2 foo3 foo10 foo11 foo12 
$ GLOBIGNORE="foo1*:foo3" 
$ ls * 
foo2 
1

당신이 확장하지 않으면 당신은 또한 여러 --exclude 옵션을 사용할 수 있습니다 가능한 패턴 VTC에 대한 일일 한도가 추락했습니다처럼

grep foo * --exclude "*.pcap" --exclude "*.gz" 
관련 문제