Windowsのテキスト処理能力をパワーアップさせる試み

きっかけ

tanonta.hatenablog.com
t2aki.doncha.net

  • 日常的に発生する大抵のテキスト処理はxyzzyの内部機能でどうにかなるけど、時々手に負えない場合があるのをどうにかできないものかと調べたらこちらの記事がヒットしました。
  • xyzzyのfilter-buffer/filter-regionを経由して、任意の外部コマンドと組み合わせて処理出来るらしい。任意と言ってもcmd.exeで動作する必要があるのでパワーシェルは対象外。所謂unix系コマンドが候補になります。
  • システムレベルのインストールをしないという制限でパワーアップを試みます。

gawk 3.1.7

blog.livedoor.jp
Gawk on Windows

  • 個人的にAwkは馴染みが無いけど、テキスト処理と言えば真っ先に挙がるのはAwkらしい。文字コードまわりの実装に癖があるようで単純に最新版を使えばよいわけでもないようで、Vectorにある3.1.5と同じ作者さんの3.1.7がこなれているらしい。公式サイトが閉鎖されているけど、なんとかバイナリを入手できました。

Strawberry Perl

strawberryperl.com
so-zou.jp

  • WindowsPerlといえばActive Perlという印象だったけど、最近はStrawberry Perlなるパッケージがあるらしい。システムワイドにインストールする必要がなく、ZIP型式で手動インストールできるのはありがたい。C:\Bin\perl配下に設置するとして、環境変数と設定ファイルに以下のように設定する。
  • 気がつけばPerlはオワコンになっていたのは哀しいけど、ちょっとしたテキスト処理には使いやすいでしょう。大抵のことは過去の遺産がどうにかしてくれるはず。
C:\Bin\perl\c\bin
C:\Bin\perl\perl\site\bin
C:\Bin\perl\perl\bin
dumb
    • relocation.txtの先頭行
C:\Bin\perl\

BusyBox for Windows

frippery.org

  • こうなるとUnix系のコマンド群が欲しくなるので調べてみたら、BusyBoxなるコマンド一式がある模様。コレはすばらしい。環境変数PATHに設定するだけでイケルの便利ですね。sortとfindがWindows標準のやつでヒットしてしまう点だけ要注意。
C:\Bin\busybox

nkf

4thsight.xyz

  • Vectorにあるやつをパスの通ったディレクトリに設置するだけでOK
  • 今さらマニュアルを熟読したら感動した。文字コード回りで悩んでいたことの大半はこいつで解決するじゃねーかよ!?