PDFファイルに対してgrep操作を実行するには?

PDFファイルに対してgrep操作を実行するには?

UbuntuでPDFファイルを最初にテキストに変換せずにgrepを使用して検索する方法はありますか?

答え1

パッケージをインストールpdfgrepした後、次のコマンドを使用します。

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

———————

最も簡単な方法:

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

答え2

すでにpoppler-utilsインストールされている場合(Ubuntuデスクトップのデフォルト)、すぐに「変換」して次にパイプすることができますgrep

pdftotext my.pdf - | grep 'pattern'

.txt ファイルは生成されません。

答え3

pdfgrepこの目的で書かれており、Ubuntuで使用できます。

ほとんどのものと互換性があることを試して、grepPDFにのみ「grepの力」を提供します。これには、または同じ一般的なgrepオプションが含まれます--recursive--ignore-case--color

pdfgrepと比較すると、一致するpdftotext | grepページ番号を高性能で出力することができ、文書全体を検索する必要がない場合(または--max-count)などが--quiet高速になることがよくあります。

基本的な使い方は次のとおりです。

pdfgrep PATTERN FILE..

PATTERN検索文字列とFILEファイル名のリスト(またはシェルのワイルドカード)はどこにありますか?

よりマンページより多くの情報を知りたいです。

答え4

いいえ。

PDFは多くのデータで構成されており、一部はテキスト、一部は画像、一部は本当に魔法で奇妙なXYZ(例:.u3dファイル)です。これらのブロックはほとんどの場合圧縮されます(例:平面化、確認)。http://www.verypdf.com/pdfinfoeditor/compression.htm)。 .pdfを「grep」するには持つ逆圧縮はテキスト抽出とも呼ばれます。

pdf2text結果をgrepしたり、「インデクサー」を実行するなどのツールを使用して、各ファイルに対してこれを行うことができます(参照:xapian.orgまたはルツェルン) .pdfファイルから検索可能なインデックスを作成し、インデクサーの検索エンジンツールを使用してPDFの内容をインポートできます。

grepしかし、いいえ、まずテキストを抽出せずにPDFファイルを取得することはできません。信頼できる回答を得ることを願っています。

関連情報