2012-06-17 5 views
0

많은 수의 html 파일을 포함하는 하나의 디렉토리에서 동일한 라인의 정확한 값을 포함하는 파일을 찾으려고합니다. 작동해야합니다 :같은 줄에 여러 값이있는 파일 목록을 검색하는 방법은 무엇입니까?

grep -iwc 'word1' -sl | xargs grep -iwc 'word2' -s 

하지만 한 번에 하나의 파일에서만 작동합니다. 나는 다음과 같은 것을 시도했다 :

find . -iname '*html' | xargs grep -iwc 'word1' -sl | xargs grep -iwc 'word2' -s 

그러나 두 개의 값 중 하나를 포함하는 파일을 표시하므로 동일한 줄에 있지 않은 파일도 표시된다.

출력은 파일 이름과 같은 발생 횟수를해야한다 :

file.html:2 

이 가능한 사람들이 greps 그룹에하면? 또는이 검색을 수행하는 또 다른 방법은 무엇입니까?

+0

특정 검색어가 일치합니까 아니면 일치하는 모든 일치하는 라인을 찾고 있습니까? –

+0

같은 줄에있는 동일한 word1과 word2 (또는 string2)와 일치하는 모든 파일을 찾고 있는데, file.html : x와 같이 출력됩니다. 여기서 x는 발생 횟수입니다. 그것은 phs에 의한 답이 트릭을하는 것 같습니다 :) – Sempiterna

답변

0

확장 된 정규식이 도움이 될 수 있습니다. 아마 이것과 비슷한 것?

find . -iname '*html' | xargs egrep -iwl '(word1.*word2|word2.*word1)' 

당신이 찾고있는 단어가 두 개 뿐이므로 주문 방법을 모두 열거 할 필요가 없습니다.

+0

이것은 작동하는 것 같습니다 : 단어와 문자열을 사용한다면, 그것도 제대로 작동할까요? 같은 줄에 word1과 'this string of'같은 단어가 있지만 따옴표가 없으므로 (따옴표가 없으므로 아무 것도 반환하지 않습니다). – Sempiterna

+0

예, 정규식으로 형성 될 수있는 한. 문자와 공백은 특별한 대우없이 할 수 있습니다. – phs

+0

답변 해 주셔서 감사합니다. 내가 얼마나 오랫동안 이것을 찾았는지 믿지 않을거야. 이것은 또한 word1 AND (word2 또는 word3)를 검색하도록 확장 될 수 있습니까? – Sempiterna

관련 문제