출력 파일에서 단어 검색

출력 파일에서 단어 검색

다음 명령을 실행할 때:

find loanwolf/ -name '*.html' -exec grep --color -rn 'loanwolf_tags' {} +

출력에 일부 파일이 제공되었습니다. 출력된 파일에서 새로운 단어를 검색하고 싶지만 grep그런 작업에는 사용할 수 없는 것 같습니다. 내가 어떻게 그런 일을 할 수 있겠는가?

답변1

두 개의 grep

-exec참 또는 거짓을 제공하므로

find .. -exec grep foo {} \; -exec grep bar {} \;

bar찾을 수 없으면 파일이 검색 되지 않습니다 .foo

\;올드 스쿨(탈출해야 함 ;) +이자 뉴 스쿨입니다.

답변2

결과를 얻으려면 다음과 같이 할 수 있습니다.

find loanwolf/. -type f -name '*.html' -exec grep -lHZ loanwolf_tags {} + |
xargs -r -0 grep -lH new_word

여기서 우리가 하는 일은 html 확장자를 가진 일반 파일을 보는 것입니다. 우리는 그 파일들을 grep에 입력하고 그 안에서 Loanwolf_tags 문자열을 찾고 있습니다. 이 옵션은 해당 문자열이 발견된 파일 이름을 표시하고 -l파일 이름에 null이 추가되어 전달됩니다.xargs\0

이러한 파일 이름을 가져와 xargs널 문자로 분할하여 모든 형태의 파일 이름을 복구합니다. 그런 다음 xargs는 이러한 파일 이름을 가져와서 grepnew_word를 찾아 일치하는 파일 이름을 표시합니다.

관련 정보