
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」の使用を断念しました。「秀丸」のマクロがその代わりになるかと思いましたが、能率の点で不満があります。つまりは、大量の語句をすばやく一括置換できればいいので、かならずしも「秀丸」マクロにはこだわりません。どうぞよろしくお願いいたします。
No.2ベストアンサー
- 回答日時:
んー標準的な仕様からすると、{ じゃなくて \{ のほうが規格に沿っているんですけどね。
まあMS-DOS用の sed ということでしたら規格が固まる前のものでしょうし、
作者が独自に拡張したりしてますしね。
置換を効率よく、というのが高速にという意味であれば
せいぜい画面の書き換えをoffにして置換を行うぐらいしかないのではないでしょうか。
秀丸のマクロでは文字列を対象にした置換というのはできないようですし。
別のツールを使うという方向では
Download: Windows > ユーティリティ > テキストファイル用 > テキスト変換
http://www.vector.co.jp/vpack/filearea/win/util/ …
にあるようなツールはもう試されてますか?
ありがとうございます。試してみたいツールがけっこうあります。「TextSS」などは以前使っていましたが、遠ざかっていました。しかし、今見ると、Vistaに対応するテキスト変換ソフトも多く出てきたようですね。
お話では、秀丸マクロだけで置換を行うのにはやはり限界がありそうなので、腹をくくって、テキスト変換ファイルの利用を考えてみたいと思います。秀丸でなんとかなるんじゃないかと未練があり、ご質問をした次第ですが、すっきりしました。ありがとうございました。
No.1
- 回答日時:
この回答への補足
ご紹介のSEDを含めて数種類試してみました。ご紹介のものはVistaでも動作しましたが、正規表現の方式が以前と若干違っていて、以前作ったSEDスクリプトが使えなかったりします(たとえば、“{”を“\{”にしなければならなくなった等)。新旧のOSで同一のSEDスクリプトを共有できず、SEDスクリプトを人にあげる場合などにトラブルを生じかねないので、いっそSEDはやめようと思いました。
この「人にあげる場合」というのが、私にとってけっこう重要です。私の周りには、そもそもDOSを扱える人自体が少なくなってきました。そんなこともあって、秀丸マクロ(秀丸なら周囲も使っています)で同じぐらいの能率で作業ができれば、と考えたわけです。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(プログラミング・Web制作) テキストエディタで複数行にわたる文字列の行頭に番号を振る方法 4 2023/03/11 12:57
- Visual Basic(VBA) 特定の文字を簡単な操作で半角スペースに変換するか削除したい 2 2022/11/01 10:35
- Excel(エクセル) Excelで校閲をする方法はあるでしょうか(取扱説明書への掲載禁止用語の確認) 3 2022/06/11 22:51
- Word(ワード) ワードフォント 一括置換の方法 4 2022/12/31 00:27
- Visual Basic(VBA) エクセルのマクロについて教えてください。 7 2023/07/04 09:18
- Excel(エクセル) Excel使用前提 同じフォルダ内にあるファイルの集約等をマクロでできますか 4 2022/09/06 19:03
- UNIX・Linux sedでの正規化 2 2022/05/10 11:39
- Excel(エクセル) 【至急 詳しい方教えて下さい】Excelの表を変換したい 6 2022/04/21 18:35
- 英語 関係副詞は、常に「関係副詞that」に置き換えれば省略可能。 ただし、whereは他の関係副詞と少し 1 2022/12/11 20:14
- Excel(エクセル) excelで可視セルのみ置換 3 2022/08/04 11:02
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Googleスプレッドシートでワイ...
-
ファイル名に空白がある時、一...
-
《》で囲まれた文字をすべて削...
-
正規表現で最初にマッチしたも...
-
PS4コントローラーをPCでゲーム...
-
SJISで、全角文字Aの文字コード...
-
エクセルでアルファベットか数...
-
エクセル
-
テラパッドで全ての改行削除は...
-
文字列の中間位置にマッチする...
-
wordで均等割り付けをするとき...
-
【VBA】特定のセルをprnで保存...
-
エクセル文字入力でセル内での...
-
履歴書の志望動機の所で、「ま...
-
ダブルクォーテーション(")で...
-
エクセルで英字と数字を組み合...
-
TV出力ポートをOFFにすれば良い...
-
エクセル初心者です。セルに長...
-
パワーポイントで文字の上に線...
-
VBA フォームのテキストボック...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Googleスプレッドシートでワイ...
-
TeraPadでの置換方法
-
ファイル名を特定の文字までを...
-
正規表現で最初にマッチしたも...
-
正規表現で完全一致したキーワ...
-
《》で囲まれた文字をすべて削...
-
メモ帳の置換機能で特定の文字...
-
ワードを使用した特定かつ複数...
-
ファイル名に空白がある時、一...
-
Flexible Renamer 半角スペー...
-
IME 郵便番号辞書 で 都道府...
-
Excel VBAでWord文書とText文書...
-
Unicode文字対応正規表現一括置...
-
クリップボードの内容を正規表...
-
WinMergeにて置換の際に、文字...
-
【正規表現に詳しい方】ダブル...
-
CSVファイルの文字列を置換...
-
Flexible Renamerの正規表現に...
-
秀丸エディタのマクロのことで
-
ACCESS、Excel、秀丸で文字列操作
おすすめ情報