모든 검색 문자열과 일치하는 전자책을 반복적으로 찾습니다.

모든 검색 문자열과 일치하는 전자책을 반복적으로 찾습니다.

pdf, epub, mobi 파일이 여러 개 있습니다. 다음을 포함하는 모든 파일을 찾고 싶습니다.

  • 전부 아니면 전무
  • 흔한
  • 재앙을 초래하는

즉, 모든 단어가 파일에 나타나야 한다는 뜻입니다. 같은 줄, 단락 또는 페이지에 있을 필요는 없습니다.

공백이 포함된 검색어를 사용할 수도 있습니다.

현재 나는 명령을 사용합니다

rga 'all-or-nothing' --ignore-case --files-with-matches \
| xargs -I{} rga 'pervasive' --ignore-case --files-with-matches "{}" \
| xargs -I{} rga 'catastrophizing' --ignore-case --files-with-matches "{}"

여기에는 몇 가지 문제가 있습니다.

  • xargs: 일치하지 않는 작은 따옴표; -0 옵션을 사용하지 않는 한 기본적으로 따옴표는 xargs에 특별합니다.
  • 이 명령은 여러 번 실행할 때 동일한 파일에 대해 동일한 결과를 제공하지 않습니다.

여기에 더 나은 해결책이 있을 수 있습니다.

업데이트 1:

지금까지 내가 찾은 것은 다음과 같습니다.

comm -12 <(rga 'A1' --ignore-case --files-with-matches | sort) \
<(rga 'A2' --ignore-case --files-with-matches | sort) \
| comm -12 - <(rga 'A3' --ignore-case --files-with-matches | sort) \
| comm -12 - <(rga 'A4' --ignore-case --files-with-matches | sort)

rga이 솔루션은 4번 실행되므로 여전히 더 성능이 좋은 솔루션을 찾고 있습니다 .

관련 정보