- ベストアンサー
Macテキスト検索置換で2ケタの数字だけ半角に
テキストの表記整理で漢数字を「全角」算用数字に一括変換しました。タテで組版をおこなう都合上、2ケタの数字だけ「半角」算用数字に変換したいのですが、一括でおこなう方法をご存知でしたらお教えください。 ちなみに今はJedit2.27で作業をしていますが、他のアプリケーションでかまいません。できればフリーがよいですがシェアでも。時間がかかって難儀しています。 どうぞよろしくお願いします。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
OS9ならばDTP等での文字の統一作業に特化した「TOOK Editor」を使えば一発です。 OSXならば、「mi」用の「TEXT整形モード」ファイルを利用する事で可能です。 http://hp.vector.co.jp/authors/VA023000/soft/took.html http://hp.vector.co.jp/authors/VA023000/soft/mi_mode_text.html
その他の回答 (2)
- TYWalker
- ベストアンサー率42% (281/661)
失礼、さっきのだと3ケタ以上も引っかかっちゃいます。 ×s/([0-9])([0-9])/$hash{$1}$hash{$2}/g; ○s/(?<![0-9])([0-9])([0-9])(?![0-9])/$hash{$1}$hash{$2}/g; テストしてないので他にも間違いがあるかもしれません。 スミマセン。
お礼
TYWalkerさん ご回答ありがとうございました。ちょっとためしてみます。
- TYWalker
- ベストアンサー率42% (281/661)
手元にMacがないんですが、Mac OS XならばターミナルからPerlが使えるはずなので、下のプログラムが使えると思います。 下のスクリプトをファイルと同じ文字コードで保存します。 #! /bin/perl # #! /bin/perl # textChange.pl $hash{'0'} = '0'; $hash{'1'} = '1'; $hash{'2'} = '2'; $hash{'3'} = '3'; $hash{'4'} = '4'; $hash{'5'} = '5'; $hash{'6'} = '6'; $hash{'7'} = '7'; $hash{'8'} = '8'; $hash{'9'} = '9'; while (<>) { s/([0-9])([0-9])/$hash{$1}$hash{$2}/g; } で、ターミナルから、以下のコマンドを使います。 % textChange.pl < 入力ファイル名 > 出力ファイル名 Perlをターミナルから使えるようになると、いろんなテキスト処理が簡単に出来るようになるので便利だと思います。 まったくの無料ですし・・・。 Jeditの正規表現を使ってもっとエレガントに出来るかもしれませんし、JeditでC言語っぽいマクロを使えるようなので、それを使えばもっとカンタンにできるかもしれませんが、一応書き込みました。 Jeditのマクロについては、以下のページを参考に出来ると思います。 http://d.hatena.ne.jp/tanakahisateru/20080925/1222336816
お礼
dezimacさん、ご回答ありがとうございました。miというのを今日はじめてためしていたところでした。OS10.5.8なのでバージョンがあわないのか、教えていただいた「TEXT整形モード」ファイルを利用すると激しい文字化けをおこしてしまいました。やり方が悪いのかもしれません。理想的なモードファイルなのに……。もう1回試してみます。