PDFファイルセットで単語または単語グループを見つける

PDFファイルセットで単語または単語グループを見つける

8つの異なるディレクトリを含むディレクトリがあるとしますNote_De_cours

Semaine_1  Semaine_3  Semaine_5  Semaine_7
Semaine_2  Semaine_4  Semaine_6  Semaine_8

各ディレクトリにはいくつかのPDFファイルが含まれています。すべてのPDFで同時に単語または単語のグループを検索するコマンドラインはありますか? PDFを開いて、押してCtrl + f、単語を検索するのが面倒です。を使ってみようかと思いましたがgrep、私は実際に専門家ではありません。たぶんこれを行う他の最適な方法があります。

すべてのPDFファイルを同時に表示するには、滞在しながらNote_De_Cours申請したいと思います。pdfgrepどのファイルに私が欲しい単語や単語のセットが含まれているかを知らせるコマンドが欲しいです。どうすればいいですか?

編集する

このコマンドを繰り返すことはできますfind elem -iname '*.pdf' -exec pdfgrep "baysien optimal" {} +elem?それはまるでfor elem in ...; do find elem -iname '*.pdf' -exec pdfgrep "baysien optimal" {} +

試しましたfor i in 1 2 3 4 5 6 7 8; do find Semaine_$i -iname '*.pdf' -exec pdfgrep "taux" {} +; doneが、元のファイルは出力されません。

答え1

変える

for i in 1 2 3 4 5 6 7 8; do  find Semaine_$i -iname '*.pdf' -exec pdfgrep "taux" {} +; done

ファイル名を印刷するには、findで-print(一致後に名前を印刷)を使用するか、grepで-l(一致ではなく名前を印刷)を使用します。

find Semaine_[1-8] -iname '*.pdf' -exec pdfgrep "taux" {} \; -print

または

find Semaine_[1-8] -iname '*.pdf' -exec pdfgrep -l "taux" {} \;

また、pdfgrep転送フラグには再帰機能が組み込まれているため、-r簡単に次のことができます。

pdfgrep -r -l "taux" Semaine_[1-8]

答え2

grepコマンドを直接使用しても結果は得られません。 Linux Minimalパッケージに含まれているアプリケーションは、viとnanoが読み取り可能なファイルのみを処理できるためです。 (grep、awkなど)PDFなどの特別なファイル形式には、さまざまなツールと代替手段があります。 Dspaceなどのオープンソースアーカイブソフトウェアをインストールすると、ブラウザですべてのPDFを検索してカタログできます。モジュールを追加するとPDF操作が改善される可能性があります。あるいは、コマンドラインベースのアプリケーションを使用して、PDFファイルをpdftotextなどのプレーンテキストファイルに変換することもできます。 pdftotextの検索コマンドの例:

pdftotext /file/semaine.pdf - | grep -n -i "Semaine"

-N:行番号を印刷します。 -私:大文字と小文字は区別されません。

wc -lコマンドの最後に追加して、探している用語が何回表示されるかを確認できます。

awkとパイプラインの後に追加された派生パラメータを使用すると、より効率的な結果が得られます。

上記のように、いくつかの方法があります。私はこれら2つの異なるオプションを提案できます。

関連情報