grep互換ツールの最有力候補 The Platinum Searcher

Windows環境には標準でファイル検索のgrepが入っていないので検索したい場合は別途ツールを導入する必要があります。
選択肢となり得るツールのうち The Platinum Searcher (pt) を試してみました。これはGo言語で書かれたプログラムで、The Sliver Searcher (ag) にできなかった EUC, SJIS 混じりの検索を可能とするものです。MacOSX、Windows, Linuxの各環境で動作します。Windowsでも動作するところが嬉しいですね。

公式サイト
http://blog.monochromegane.com/blog/2014/01/16/the-platinum-searcher/

実験した環境は Windows10 だったのですが2016/08/27現在、上記公式サイトのリンクからダウンロードしてきたバイナリでは動作できませんでした。githubの方からダウンロードして使います。

ダウンロード

こちらがソース公開しているgithubです。このreleasesに Downloads のリンクがありますので、pt_windows_amd64.zip をダウンロードします。(64bit環境の場合)

https://github.com/monochromegane/the_platinum_searcher/releases

展開と配置

解凍すると中には pt.exe と readme.txt があります。 pt.exe の方をパスの通ったディレクトリへ格納してください。たとえば C:\Windows\ などです。パスの通ってない場所へ置きたいなら自前でパスを通して再起動してください。これだけで利用可能となります。コマンド名は pt です。プラチナの元素記号ですね。

実験1: pt で日本語文字の検索

DOS窓(cmd)から、The Platinum Searcher のソースツリー配下で「テスト」と検索してみました。このスクリーンショットのとおり、 SJIS, EUC, UTF-8 のそれぞれのファイル内から 文字列”テスト” を発見できています。

キャプチャ

実験2: findstr で日本語文字の検索

実はWindows には標準で findstr というものが入っており、こちらも grep 相当の検索処理ができます。同じことを findstr でやってみると下記のように SJIS のものしか発見できませんでした。

キャプチャ

実験3: Notepad++の検索機能で日本語文字の検索

Notepad++の検索機能で試してみたところ、このようになります。こちらはEUCを発見してくれませんでした。しかも少しばかり低速です。

2016-08-27

実験4:Visual Studio Code で日本語文字の検索

Microsoftが提供するフリーの VS Code です。こちらで同等の検索をしてみたところ、UTF-8しかヒットしませんでした。

2016-08-27 (1)

まとめ

手近なツールで比較してみた結果、日本語文字を最も上手に検索してくれるのがこの The Platinum Searcher でした。

検索対象が巨大なファイル郡であったとしても The Platinum Searcher なら超高速に実行できます。 便利なコマンドラインツールに乏しいWindows環境での grep 互換ツールの最有力候補と言えるのではないでしょうか。

スポンサーリンク
レクタングル(大)広告
  • このエントリーをはてなブックマークに追加
スポンサーリンク
レクタングル(大)広告