[unix] PDF 파일을 어떻게 grep 할 수 있습니까?

우분투에서 먼저 텍스트로 변환하지 않고 grep의 힘을 사용하여 PDF 파일을 검색하는 방법이 있습니까?



답변

패키지를 설치 한 pdfgrep후 다음 명령을 사용하십시오.

find /path -iname '*.pdf' -exec pdfgrep pattern {} +

——————

가장 간단한 방법은

pdfgrep 'pattern' *.pdf
pdfgrep 'pattern' file.pdf


답변

당신이 한 경우 poppler-utils(우분투 바탕 화면에 기본) 설치, 당신의 비행 및 파이프 그것을 그것을 “변환”수 grep:

pdftotext my.pdf - | grep 'pattern'

.txt 파일은 생성되지 않습니다.


답변

pdfgrep 은 정확히이 목적으로 작성되었으며 우분투에서 구할 수 있습니다.

대부분 grepPDF와 호환되도록 “grep의 힘”과 호환되도록 노력합니다 . 즉 같은 일반적인 그렙 옵션을 포함 --recursive, --ignore-case또는 --color.

pdftotext | greppdfgrep과는 달리 , pdfgrep은 일치하는 방식으로 페이지 번호를 출력 할 수 있으며 전체 문서 (예 : --max-count또는 --quiet) 를 검색 할 필요가 없을 때 일반적으로 더 빠릅니다 .

기본 사용법은 다음과 같습니다.

pdfgrep PATTERN FILE..

여기서 PATTERN검색 문자열과 FILE파일 이름 목록 (또는 쉘의 와일드 카드)이 있습니다.

자세한 내용은 맨 페이지 를 참조하십시오 .


답변

아니.

pdf는 데이터 덩어리, 일부는 텍스트, 일부는 그림 및 일부는 정말 멋진 XYZ (예 : .u3d 파일)로 구성됩니다. 이러한 청크는 대부분 압축 된 시간입니다 (예 : 플랫, http://www.verypdf.com/pdfinfoeditor/compression.htm 확인 ). ‘그렙’는 .PDF하기 위해 당신은 압축 일명 반전 텍스트를 추출 할 수 있습니다.

pdf2text결과와 같은 도구를 사용하여 파일별로 결과를 거나 .pdf 파일에서 검색 가능한 색인을 작성하는 ‘indexer'( xapian.org 또는 lucene 참조 )를 실행 한 다음 검색을 사용할 수 있습니다 해당 인덱서의 엔진 도구를 사용하여 pdf의 내용을 가져옵니다.

그러나 아니요, grep파일을 PDF로 작성할 수 없으며 텍스트를 먼저 추출하지 않고도 신뢰할 수있는 답변을 기대할 수 있습니다 .


답변

Recoll 은 PDF를 검색 할 수 있습니다. 정규식은 지원하지 않지만 다른 검색 옵션이 많이 있으므로 필요에 맞을 수 있습니다.


답변

당신은 strings먼저 그것을 통해 파이프 수 있습니다 :-

cat file.pdf | strings | grep <...etc...>


답변

PDF 파일 내 검색을 지원 하는 공통 자원 그렙 도구 crgrep 를 살펴보십시오 .

또한 아카이브, 데이터베이스 테이블, 이미지 메타 데이터, POM 파일 종속성 및 웹 자원에 중첩 된 컨텐츠와 같은 다른 자원과 재귀 검색을 포함한 이들의 조합을 검색 할 수 있습니다.