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で使用できます。
ほとんどのものと互換性があることを試して、grep
PDFにのみ「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ファイルを取得することはできません。信頼できる回答を得ることを願っています。