コマンドラインからPDFファイルを検索するにはどうすればよいですか?


26

論文の参照を確認しており、(参照リスト内の)いくつかの論文が参照されている本文の位置を検索したい。bashを介した検索をサポートし、ポジションのコンテキストを抽出するPDFエディターはありますか?PDFをテキストに変換しようとしましたが、良い結果が得られませんでした。

回答:


22

上記の答えに追加するために、特に、pdftotextと呼ばれるxpdf-utilsのコマンドラインツールを使用し、このツールで作成されたテキストドキュメントをgrepで検索できます。

これは次のようになります。

pdftotext document.pdf - | grep -C5 -n -i "search term"

マニュアルに詳細があります。pdftotextの唯一の欠点は、複数のファイルを同時に変換することはできないということです。この問題は、小さなbashスクリプトで克服できます。

for f in pdf_directory; do echo $f; pdftotext $f - | grep -i "search_term"; done

たとえば、互換性のないpdfファイルが原因で、pdfからテキストドキュメントを作成する際に問題がある場合は、別の問題です。

一般に、pdfエディターはグラフィカルであるため、コマンドラインは含まれていないと思います。bash(またはzsh!)を使用する場合は、ターミナルシェルを使用する必要があります。

がんばろう!


20

poppler-utils

注: xpdf-utils は、 poppler-utilsの移行パッケージです。

poppler-utilsを使用できます。poppler-utilsは、PDF(Portable Document Format)ファイル用のツールスイートです。

それをインストールするには、Ubuntu Software Centerを使用するか、以下をクリックしてください。

poppler-utilsをインストールします

pdfgrep

pdfgrepPDFファイル内の文字列またはパターンをディレクトリツリーで再帰的に検索し、一致をカウントするか、一致ごとにコンテキストを出力できます。たとえば、を再帰的に検索するにkeyword/some directory、大文字と小文字を区別しません:

pdfgrep -Ri keyword /some/directory

Pdfgrepは、PDFファイル内のテキストを検索するツールです。これは、「grep」と同様に機能します。

特徴:

  • 正規表現を検索します。
  • 以下を含むいくつかの重要なgrepオプションのサポート:+ファイル名出力。+ページ番号の出力。+大文字と小文字を区別しないオプション。+
    出現回数をカウントします。
  • そして最も重要な機能:カラー出力!

pdfgrepをインストールする

1出典: Ubuntu Apps Directory


6

pdfgrepを使用して複数のpdfファイルで正規表現を検索するには:

find /path -iname '*.pdf' -exec pdfgrep -H 'pattern' {} \;

pathはPDFファイルの場所です。


0

pdftotextは成功せずにいた理由はPDFがスキャンした画像であり、あなたは、OCRにそれらを必要とすることかもしれないが、私はすべて検索する簡単な方法を書いたpdfことができないのgrepEDとOCRそれらを。

pdfファイルにフォントがない場合、通常は検索できません。これを知っていれば使用できますpdffonts

の最初の2行はpdffontsテーブルヘッダーです。したがって、ファイルが検索可能な場合、2行以上の出力があり、これを作成することができます。

gedit check_pdf_searchable.sh

これを貼り付けて

#!/bin/bash 
#set -vx
if ((`pdffonts "$1" | wc -l` < 3 )); then
echo $1
ocrmypdf "$1" "$1"_ocr.pdf
fi

実行可能にする

chmod +x check_pdf_searchable.sh

次に、ディレクトリ内のすべての検索不可能なPDFをリストします。

ls -1 ./*.pdf | xargs -L1 -I {} ./check_pdf_searchable.sh {}

またはディレクトリとそのサブディレクトリ内:

tree -fai . | grep -P ".pdf$" | xargs -L1 -I {} ./check_pdf_searchable.sh {}

また、インストールする必要があります。

sudo apt install ocrmypdf
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.