FreeBSD를 Windows 클라이언트용 파일 서버로 사용하는 경우 클라이언트 측이 아닌 서버 측에서 파일 검색을 실행할 수 있으면 유용할 것입니다.
일반적인 예는 특정 메타데이터 기준(이름, 경로, 크기, 날짜 등)을 충족하고 텍스트 추출 콘텐츠에 일부 리터럴 또는 정규 표현식을 포함하는 모든 파일을 찾는 것입니다. 혼합 파일이 포함된 대규모 반복 디렉터리를 검색하면 .txt 주석, .docx/.xlsx 문서, .pdf, .zip/.rar/.tgz/ 중 하나(또는 그 이상)에서 콘텐츠 조회가 발생할 수 있습니다. iso 압축 아카이브이거나 실패할 경우 바이너리 파일의 문자열일 수도 있습니다.
첫 번째 부분은 쉽습니다 find
. 파일 유형 내에서 검색하는 것도 어렵지 않습니다. 그러나 FreeBSD에는 "잘 알려진" 파일 필터에 대한 개념이 없으며 파일 데이터를 플러그형 필터를 사용하여 공통 형식으로 변환하는 텍스트로 구문 분석하기 위한 특정 단일 API도 없습니다(비록 많은 개별 파일 유형에 대해 잘 알려진 텍스트 추출이 있지만) pdf, doc/docx, xls/xlsx, 아카이브 형식, sqlite 데이터베이스, 문자열이 포함된 바이너리 파일 등)을 포함하므로 일반적으로 결과에 grep
, find -exec
또는 Microsoft XML 추출 코드를 사용할 수 없습니다 . 파일 이름 목록이나 스트림을 생성한 다음 확장자에 따라 적절한 필터를 통해 각 파일 이름을 전달하거나 출력으로 전달되는 모든 것을 수집해야 할 것 같습니다.pdftotext
unzip | sed
find
file
대규모 파일 저장소에서 이러한 종류의 콘텐츠 검색을 자주 수행해야 하는 경우 더 효율적으로 설계된 특정 도구가 있습니까, 아니면 가장 효율적인 접근 방식은 무엇입니까?
갱신 -나한테만 관심이 있을 뿐이야파일별 CLI 직접 검색. 그래요아니요콘텐츠를 색인화하고 이후에 색인을 검색하는 데 약간의 관심도 있습니다. 이 질문은 파일 단위의 현장 텍스트/정규식 검색과 관련이 있지만 find
콘텐츠도 검색되고 일반 텍스트가 아니라 텍스트 추출 필터가 다른 여러 파일 형식인 경우와 동일합니다. 그래서 그렇습니다아니요색인화된 콘텐츠 검색에 대한 기존 질문과 중복됩니다. 죄송합니다. 이전에는 명확하지 않았고 모호함을 인식하지 못했습니다.