大量にpdfファイルを保存していると、どこに置いたか忘れたりして必要なときに見つけれないことがある。そこで、pdf ファイルをテキストに変換して、grep で検索する方法をまとめる。
はじめに、pdf用のディレクトリ(mypdf)を作成し、その下に項目毎にpdfファイルを整理しておくことにする。下の例では、red, blue, yellow の3つのディレクトリを作成している。私は作成した人の名前で整理しているが、場合によって異なってくると思う。
$ cd $ mkdir mypdf $ cd mypdf $ mkdir red blue yellow
次に、作成したディレクトリの中にpdfファイルを溜め込んでいく。そのあと、あらかじめ作成しておいたディレクトリtextallに、pdfファイルをテキスト化したものを入れる。以下の方法は名前の衝突など考慮していないシンプルな方法なので、大切なファイルを誤って消してしまわないように注意すること。
$ mkdir textall $ ls red blue yellow textall $ find . -name \*.pdf -exec pdftotext {} \; $ find . -name \*.txt -exec mv {} textall/ \;
テキストから検索する。以下の例は、keywordに合致する箇所の前後1行を抜き出して、それが含まれているファイル名を添えて表示させている。
$ grep -C1 -H 'keyword' textall/*.txt | less