2012-11-14 2 views
1

GNU Grep (grep for Win32 target)을 사용하여 windows7 용 .bat 파일을 만들려고합니다. 구문을 사용하는 표현식에 문제가 있습니다. (또는), 도스 명령은 내가 파이프/리다이렉트로 사용하고 있다고 생각합니다. 다음은 샘플 입력에 foo.txt는 다음과 같습니다grep 명령 줄에서 "or"with dos window (gnu grep)

grep aaa foo.txt 

결과 :

aaa 
aaa bbb ccc 

지금까지 너무 좋아

aaa 
bbb 
ccc 
aaa bbb ccc 

은 그래서 쉽게 시험을 봅니다. 하지만 난 정말 AAA 또는 BBB를 추출해야, 그래서 나는이 표현 사용 (AAA | BBB) 예 :

grep (aaa|bbb) 

이 날 수 있습니다 : 나는 여러 따옴표를 시도했습니다

'bbb)' is not recognized as an internal or external command, 
operable program or batch file. 

을하지만, 아직 올바른 조합을 찾지 못했습니다. DOS 인터프리터에서 문자열을 보호 할 필요가 있지만 여전히 grep에 유용합니다. 매뉴얼 페이지와 웹 문서를 읽었고, 내가하려고하는 것에 맞지 않는 것으로 보였다.

누구든지이 작업을 수행하는 방법을 알고 있습니까? 감사.

답변

3

따옴표를 필요로하고 \와 파이프를 탈출 :

grep "aaa\|bbb" foo.txt 

$ cat foo.txt 
aaa 
bbb 
ccc 
aaa bbb ccc 

$ grep "aaa\|bbb" foo.txt 
aaa 
bbb 
aaa bbb ccc 
+0

좋은 모습,하지만 작동하지 않았다. 메시지 : 'bbb' '이 (가) 내부 또는 외부 명령, 작동 가능 프로그램 또는 배치 파일로 인식되지 않습니다. –

+0

큰 따옴표는 어때요? –

+0

아, 큰 따옴표가 작동합니다! –