複数ファイルを正規表現で連続置換できまNo.15695
いである さん 03/11/07 17:20
 
 秀丸エディターを使った置換のことで、質問します。先ほど同趣旨の投稿をしまし
たが、削除して書き直しました。

 現在、特定のフォルダ内の全ファイルを対象に、正規表現をつかった置換をかける
作業が多く、秀丸を愛用しています。
 一度に全ファイルに置換がかけられるのはよいのですが、置換の条件が10パターン
ほどもあり、それをくりかえすのがたいへんです。
 複数ファイルに対し、複数の置換パターン(正規表現)を一度にあてはめることは、
可能でしょうか。

 変換テーブルを用意しておくと連続置換が可能なツールは、フリーウェアであるよ
うですが、秀丸のタグ付き正規表現がとても便利なので、秀丸でおこないたいと思っ
ています。
 山紫水明様の連続置換マクロを試してみましたが、残念ながら正規表現は置換され
ませんでし、複数ファイルを対象にできませんでした。
 どなたか解決方法をご存じの方、ご教授ください。

[ ]
RE:15695 複数ファイルを正規表現で連続置No.15706
山紫水明 さん 03/11/07 21:32
 
 いであるさん,こんばんは。

》 山紫水明様の連続置換マクロを試してみましたが、残念ながら正規表現は置
》換されませんでし、複数ファイルを対象にできませんでした。

 ライブラリマクロに関することなので,マクロ作者のための会議室
http://www.maruo.co.jp/turukame/4/index.html
の方にコメントを書いておきます。

     では, (^^)/~
                                        山紫水明

[ ]
RE:15695 複数ファイルを正規表現で連続置No.15723
秀丸担当 さん 03/11/10 17:22
 

> 現在、特定のフォルダ内の全ファイルを対象に、正規表現をつかった置換をかける
>作業が多く、秀丸を愛用しています。
> 一度に全ファイルに置換がかけられるのはよいのですが、置換の条件が10パターン
>ほどもあり、それをくりかえすのがたいへんです。
> 複数ファイルに対し、複数の置換パターン(正規表現)を一度にあてはめること
>は、
>可能でしょうか。

マクロを作成すれば、複数の条件を一度に置換することができます。

replaceall "aaa", "bbb", regular;
replaceall "ccc", "ddd", regular;
replaceall "xxx\\fyyy", "\\1", regular;

というマクロを作れば、一度にできます。
マクロ内では \ を \\ と書かなくてはいけないです。

一度に全ファイルに置換はどのようにしてやられているのでしょうか。
全ファイルには適用できませんが、replaceall に linknext を付ければ開いて
いるファイルに適用できます。

replaceall "a", "b", regular, linknext;

というはずだったのですが、V4.01で試してみたところ、replaceallでlinknext
をすると固まってしまうバグを発見してしまいました。早速修正したいと思いま
す。V3.19では動きます。

[ ]
RE:15723 複数ファイルを正規表現で連続置No.15756
いである さん 03/11/12 16:14
 
 秀丸担当様、ご回答ありがとうございます。

>マクロを作成すれば、複数の条件を一度に置換することができます。

 やはりマクロの知識は必須のようですね。少しだけかじり始めました。

>一度に全ファイルに置換はどのようにしてやられているのでしょうか。

 以前はひろ様の「MultiReplace」マクロをつかい、現在ではgrepした上で緒方聡様
の「FastGrepReplace 1.06」マクロを使っています。

>全ファイルには適用できませんが、replaceall に linknext を付ければ開いて
>いるファイルに適用できます。

 上のコメントの山紫水明様のマクロに「linknext」をつけ加えてみたところ、開い
ているファイル全てに置換がかかりました。ただし取りこぼしも発生し、その取りこ
ぼしも場合によってはちゃんと置換されますので、よくわからない状況です。
 いずれにせよ、もっと勉強しないといけないようです。

>というはずだったのですが、V4.01で試してみたところ、replaceallでlinknext
>をすると固まってしまうバグを発見してしまいました。早速修正したいと思いま
>す。V3.19では動きます。

 丁寧な対応、ありがとうございます。ますます秀丸エディターのファンになりまし
た。

[ ]