2013-02-17 3 views
1

'grep'을 사용하여 텍스트 파일의 패턴 조합을 검색하는 방법은 무엇입니까?문구 조합 검색

말은, 예를 들어 내가 찾고 있어요

감사합니다 "에 의한 방식"을하고 "바이 방법"과 같은 가능한 다른 조합 "그런데".

답변

1

가장 간단한 방법은 regexps를 사용하는 것입니다. 그러나이 또한 약간 잘못 :

egrep '([ ]*(by|the|way)\>){3}' 

이것이하는 일은 완전한 단어로 함께 단어 앞에 공백을 복용 (있는 경우)를 강제하여 세 단어의 그룹에 일치하는 것입니다 (따라서 \> 끝 부분에 있음). 그룹에있는 단어가 세 번 나올 경우 문자열을 일치시킵니다. 그것을 실행

예 :

으로 이미 말했다
$ echo -e "the the the\nby the\nby the way\nby the may\nthe way by\nby the thermo\nbypass the thermo" | egrep '([ ]*(by|the|way)\>){3}' 
the the the 
by the way 
the way by 

,이 the the the에 대한 '거짓'양성을 procudes하지만 당신이 그와 함께 살 수 있다면, 나는 이런 식으로 일을 권하고 싶습니다.

+0

이것은 "온도계로"와 같은 구를 찾을 수 있다는 것을 제외하고는 내가 원하는 것과 가깝습니다. –

+0

물론 맞습니다 :). 업데이트 대답 – nemo

2

Awk는 grep이 아닌 도구입니다. 전체 파일의 맞은 편에

awk '/by/ && /the/ && /way/' file 

:이 그들 사이에 공간이 그 세 단어의 조합 검색을하지, 3 개 단어를 검색하는 것이

gawk -v RS='\0' '/by/ && /the/ && /way/' file 

참고 한 줄에. 너가 원하는게 그거야?

도움이 필요하면 샘플 입력 및 예상 출력을 비롯한 자세한 내용을 제공하십시오.

+0

이것은 내가 원하는 것을 아닙니다. 내가 질문에서 물었 듯이 그 구절과 그 조합을 찾고 싶다. –