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번 실행되므로 여전히 더 성능이 좋은 솔루션을 찾고 있습니다 .