'grep'을 사용하여 텍스트 파일의 패턴 조합을 검색하는 방법은 무엇입니까?문구 조합 검색
말은, 예를 들어 내가 찾고 있어요
감사합니다 "에 의한 방식"을하고 "바이 방법"과 같은 가능한 다른 조합 "그런데".
'grep'을 사용하여 텍스트 파일의 패턴 조합을 검색하는 방법은 무엇입니까?문구 조합 검색
말은, 예를 들어 내가 찾고 있어요
감사합니다 "에 의한 방식"을하고 "바이 방법"과 같은 가능한 다른 조합 "그런데".
가장 간단한 방법은 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하지만 당신이 그와 함께 살 수 있다면, 나는 이런 식으로 일을 권하고 싶습니다.
Awk는 grep이 아닌 도구입니다. 전체 파일의 맞은 편에
awk '/by/ && /the/ && /way/' file
:이 그들 사이에 공간이 그 세 단어의 조합 검색을하지, 3 개 단어를 검색하는 것이
gawk -v RS='\0' '/by/ && /the/ && /way/' file
참고 한 줄에. 너가 원하는게 그거야?
도움이 필요하면 샘플 입력 및 예상 출력을 비롯한 자세한 내용을 제공하십시오.
이것은 내가 원하는 것을 아닙니다. 내가 질문에서 물었 듯이 그 구절과 그 조합을 찾고 싶다. –
이것은 "온도계로"와 같은 구를 찾을 수 있다는 것을 제외하고는 내가 원하는 것과 가깝습니다. –
물론 맞습니다 :). 업데이트 대답 – nemo