nomuran's diary

野村直之のはてな日記(後継ブログ)です

Emacs on MacOSXはパワフル

 mextractrの評価のために、大量のテキストを扱っています。元々入っていたタグ情報を適宜消しつつ、レグレッションテスト環境に必要なID番号の形式に加工したり、レイアウトを変更、統一するスクリプトを、途中結果を目視確認しながら、かけていきます。

 こんなとき、いちいちエディタを抜けて、小さなプログラム (AWKの本で昔 One Liner : '1行野郎'と呼ばれていた類)を書いてテストして、、と試行錯誤するのは結構面倒だし、データを途中で一部壊したのに気づかない危険が大きかったりします。

 そこで、Emacsの中で全部やってしまっています。
 ところが、昨日、新聞記事1年分の1ファイル、およそ1800万行を1つのバッファに読み込もうとしたら、さすがに、「無理!」ってEmacsに言われました。
MacOSX Tiger, iMac (2007 spring), memory 4GB の環境です。
 どのくらいまでOKか興味あったのでやってみたところ、、500万行まではOKでした。「このファイルでかいけど読み込むかい?」というメッセージは出るものの、いったん読み込んでしまえば、ESC + < や ESC + > でほぼ瞬時にファイルの先頭、末尾の間を行き来できるので快適です。

 やってて1つ我ながら間抜けだったのが、「全角英数字→半角」の変換がEmacsでできる、となぜかしばらく思い込んでいて、調べてしまったこと。昔の記憶で、「大文字→小文字」の変換が普通にできる、というのとあとで人に聴きながら、sedスクリプトを生成して解決しました。