プロが教えるわが家の防犯対策術!

DOSの「SED」でできるテーブル置換と同様のことを、「秀丸」マクロを使って、能率的にできないかと考えております。

たとえば、「目」「鼻」「口」を「め」「はな」「くち」に置換したい場合、「SED」では
---
s/目/め/g
s/鼻/はな/g
s/口/くち/g
---
という置換テーブルを作って、コマンドを実行すれば成功します。「秀丸」でも、
---
replaceall "目" , "め" , regular, nocasesense;
replaceall "鼻" , "はな" , regular, nocasesense;
replaceall "口" , "くち" , regular, nocasesense;
---
のようなマクロを作って実行すれば、一応同様の結果が得られます。

ところが、上記のような3行程度の命令ならいいのですが、命令行が100行とか200行とか長くなると、能率の問題が出ます。「SED」はほとんど能率は落ちませんが、「秀丸」マクロは1行1行置換していくため、たいへん能率が落ちてしまいます。能率よく置換できるマクロ記述方法がないものか、ご教示いただければ幸いです。

なお、私はこのような大量の語句置換をする必要がしばしばあり、昔からDOSで「SED」を使っていました。ところが、Windows Vistaを使うようになってから、Vistaでも以前のOSでも同じように動く「SED」の日本語版が見当たらないため、ついに「SED」の使用を断念しました。「秀丸」のマクロがその代わりになるかと思いましたが、能率の点で不満があります。つまりは、大量の語句をすばやく一括置換できればいいので、かならずしも「秀丸」マクロにはこだわりません。どうぞよろしくお願いいたします。

A 回答 (2件)

んー標準的な仕様からすると、{ じゃなくて \{ のほうが規格に沿っているんですけどね。


まあMS-DOS用の sed ということでしたら規格が固まる前のものでしょうし、
作者が独自に拡張したりしてますしね。

置換を効率よく、というのが高速にという意味であれば
せいぜい画面の書き換えをoffにして置換を行うぐらいしかないのではないでしょうか。
秀丸のマクロでは文字列を対象にした置換というのはできないようですし。

別のツールを使うという方向では
Download: Windows > ユーティリティ > テキストファイル用 > テキスト変換
http://www.vector.co.jp/vpack/filearea/win/util/ …
にあるようなツールはもう試されてますか?
    • good
    • 0
この回答へのお礼

ありがとうございます。試してみたいツールがけっこうあります。「TextSS」などは以前使っていましたが、遠ざかっていました。しかし、今見ると、Vistaに対応するテキスト変換ソフトも多く出てきたようですね。

お話では、秀丸マクロだけで置換を行うのにはやはり限界がありそうなので、腹をくくって、テキスト変換ファイルの利用を考えてみたいと思います。秀丸でなんとかなるんじゃないかと未練があり、ご質問をした次第ですが、すっきりしました。ありがとうございました。

お礼日時:2008/01/29 22:06

http://www.kt.rim.or.jp/~kbk/sed/

xpまでは動作確認されてるみたいですがvistaではだめだったりしますか?

この回答への補足

ご紹介のSEDを含めて数種類試してみました。ご紹介のものはVistaでも動作しましたが、正規表現の方式が以前と若干違っていて、以前作ったSEDスクリプトが使えなかったりします(たとえば、“{”を“\{”にしなければならなくなった等)。新旧のOSで同一のSEDスクリプトを共有できず、SEDスクリプトを人にあげる場合などにトラブルを生じかねないので、いっそSEDはやめようと思いました。

この「人にあげる場合」というのが、私にとってけっこう重要です。私の周りには、そもそもDOSを扱える人自体が少なくなってきました。そんなこともあって、秀丸マクロ(秀丸なら周囲も使っています)で同じぐらいの能率で作業ができれば、と考えたわけです。

補足日時:2008/01/28 14:10
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!