生涯現役のITエンジニアを目指して、日々成長していくためのコラムを紹介します

20年ぶりにWordファイルの横断検索をやってみた

»

こんにちは。

大量の仕様書がWordファイルで作られていて、その中から探し出すという必要性に迫られました。いまは令和も5年。いまの時代、どうやって全文検索できるのでしょうか?

昔はどうしていたか

私が20代前半の頃、平成10年~15年の頃の話ですが、全文検索システム Namazuを使って、Wordファイルの横断検索をしていました。HP-UXにApacheを導入して、CGIとして動かしていたと思います。HP-UXとかCGIとか懐かしいですね。

久々に探してみたら、まだNamazuのサイトが残っていました。さすがにもう開発は停止しているようです。
http://www.namazu.org/index.html.ja

Microsoft OfficeのWordやExcelなどを使い出したのは、私は社会人になってからですが、とにかく職場では不評でした。バイナリファイルなので、grepを使って検索はできないし、diffで差分も取れません。使えないじゃん!

Officeファイルの横断検索をしていたのは、このときぐらいで、それから久しくはやっていなかったと思います。

いまでも全文検索できるよね?

あれから20年が過ぎました。調べてみると、いろいろな方法でOfficeファイルの横断検索ができるようになっていました。

エクスプローラーで検索する

Windowsのエクスプローラーで、ファイルの中身も含めて検索することができます。ただし、フォルダーオプションの設定が必要です。

win_find1.jpg

win_find2a.jpg

バイナリファイルをgrepする

FavBinEditというバイナリエディタがあり、最近愛用しています。このソフトにはgrep機能が搭載されており、バイナリファイルを検索することができるのです。

バイナリエディタ | FavBinEdit (wabiapp.com)

Wordファイルの拡張子が.docのものは、文字コードがUTF-16(LE)で文字列が保存されています。

bin1.jpg

bin2.jpg

Wordファイルの拡張子が.docxのものは、このやり方での検索は難しいです。.docxはZIP圧縮されているので、一度展開(解凍)する必要があります。文字コードはUTF-8で、文字列が格納されています。

MiGrep2を使う

MiGrep2というツールと、xdoc2txtというツールを組み合わせることで、WordやExcelなどのOfficeファイルに加えて、PDFファイルも全文検索できます。

https://www.vector.co.jp/soft/winnt/util/se515999.html

http://ebstudio.info/home/xdoc2txt.html

最初に設定が必要ですが、一度設定すれば、あとは楽に検索ができるようになります。

mi1.jpg

mi2.jpg

mi3.jpg

このやり方だと、大量のOfficeファイルがあっても高速に検索してくれました。とてもありがたいですね。
素敵なソフトウェアを作ってくださった作者様に感謝します。

おわりに

MiGrep2はヘルプによるとDelphiで作ってあるようです。懐かしいですね。私が大学の授業ではじめて学んだプログラミング言語が、Pascalでした。その後、個人的にBorlandのDelphiコンパイラを買って、独学していた時期もありました。

あれからもうPascalを使うことはなくなり、言語文法も忘れてしまいましたが、あのとき学んだプログラミング体験は、いまの自分にも活かされています。

Comment(0)

コメント

コメントを投稿する