2010-04-23 3 views
0

저는 bash의 초보자이며 특정 패턴과 일치하지 않는 디렉토리의 모든 파일에 python 함수에 매개 변수를 전달하고 싶습니다. sth. 같은 :bash에서 문자열과 일치하지 않는 파일 목록을 표시합니다.

$ myscripts/myprog.py $ myfiles/(bonjovi)

위의 예제가 "bonjovi"일치하지 않는 모든 파일을 검색한다!.

보다도 그것은 grep, xargs와 정규 표현식을 사용하는 것이 아마 가장 쉬운

답변

2

소원. grep -v은 주어진 패턴과 일치하는 행 (이 경우 파일 이름)을 제외시킵니다.

ls | grep -v 'bonjovi' | xargs myscripts/myprog.py 
+0

위대한 감사합니다 찰스! grep 매개 변수에 정규식을 사용하려면 어떻게해야합니까? 말하자면 : ls | grep -v '* bonjovi_album1 *'| xargs myscripts/myprog.py 작은 테스트를했지만 "bonjovi_album1"도 출력물에서 검색됩니다. – Javier

+0

'* bonjovi_album1 *'는 첫 번째'*'앞에 아무 것도 없기 때문에 유효한 정규 표현식이 아닙니다. 'echo bonjovi_album1 | grep -v 'bonjovi_album1 *' '는 나를 위해 일하지만 예상 한대로하지 않을 수 있습니다. 'bonjovi_album' 다음에 0 이상'1'을 포함하는 것을 제거합니다. 이 경우'bonjovi_album' 패턴과 동일합니다. –

3

정확한 구문이 있습니다. 활성화 만하면됩니다.

shopt -s extglob 
관련 문제