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つの異なるオプションを提案できます。