2016-08-18 2 views
0

을 grep을 주어 :정규 표현식 내가이처럼 보이는 거대한 파일에서 추출하고자하는

..... 
G: Quantity 000001, removing 4 binary files 
A: some stuff 
..... 
G: some other stuff 
G: some infos 
..... 
G: Quantity 000002, removing 1 binary files 
.... 
A: some data 
.... 
G: Quantity 000003, removing 41 binary files 
..... 

모든 라인 "G : 수량 ?????? * 바이너리 파일을 제거".

필자는이 패턴을 bash 구문과 함께 쓰고 있습니다. 주로 익숙한 글꼴이지만 grep은 bash와 마찬가지로 물음표와 별표를 해석하지 않습니다. 해당 grep 구문은 무엇입니까?

grep "G:" filename | grep Quantity | grep removing 

을하지만 어떤 정규식을 사용하지 않습니다

다음 구문은 작동합니다.

+0

'고양이 grep.txt을 | grep -e^G. * binary \ files $'그런 것입니까? –

+0

"bash 구문"에 따르면 "globbing pattern"은 의미 상 유사점이 있지만 정규 표현식이 아닙니다. google'regexp tutorial'을 다운로드 받아 사용하십시오. –

답변

2

정규식에서 어떤 문자와도 일치시키는 방법은 .입니다.

정확히 N 번 문자를 찾으려면 .{N}을 말하십시오. 적어도 하나는 일치 시키려면 .+라고 말하십시오.

grep -E 'G: Quantity [0-9]{6}, removing [0-9]+ binary files' file 

이 명령의 반환 : 당신이 숫자를 일치시킬이 경우이기 때문에, 그 대신 . 너무 일반적의 [0-9] 말을 가장 할 수있다

G: Quantity 000001, removing 4 binary files 
G: Quantity 000002, removing 1 binary files 
G: Quantity 000003, removing 41 binary files 
관련 문제