Grep置換

GrepReplace
ディスクにある複数のファイルから、指定した文字列を検索・置換することができます。(sakura:2.2.0.0以降)
指定したフォルダーの下層のフォルダーを全て置換することもできます。
サクラエディタ自身や他のプログラムが排他制御で書き込み禁止の場合、改名処理に失敗します。
以下の手順で置換処理を実行します。
 1. [対象ファイル名]を読み込み
 2. 1.の処理の途中で置換が発生したら[対象ファイル名.skrnew]というファイルに書き出し
 3. 読み込み・置換が完了し「バックアップ作成」がONなら対象ファイルを[対象ファイル名.skrold]に改名
    OFFなら対象ファイルを削除
 4. [対象ファイル名.skrnew]を[対象ファイル]に改名

・置換結果はファイルが空でない場合、別のウィンドウが作成されて、そこに表示されます。
・置換結果から、条件と一致した箇所に直接ジャンプ(タグジャンプ)することができます。
共通設定 『検索』プロパティ GREP の設定によっては、GREP結果から行をダブルクリック・Enterすることでも、該当する場所にジャンプします。
(置換前) …… 検索条件を指定します。ファイル名検索はできません。
(置換後) …… 置換後文字列を指定します。
(ファイル) … 検索対象となるファイル指定します。ワイルドカードが使えます。
カンマ、スペース、セミコロン(, ;)のどれかで区切ると複数の条件を指定できます。
ファイル名に(, ;)を含む場合は、ダブルクオーテーションで囲うことで、ひとつのファイル名として扱えます。
ファイルパターンの先頭に!を付ける(例: !*.obj)と,そのパターンに当たるファイルをGrep対象から外します。
ファイルパターンの先頭に#を付ける(例: #*.svn)と、そのパターンに当たるサブフォルダーをGrep対象から外します。
指定位置にかかわらず除外指定は検索指定より優先されます.
何も指定しない場合は、「*.*」を指定したことになります。
(フォルダー) … 検索対象ファイルのあるフォルダーを指定します。エクスプローラなどからのフォルダーのドロップも受け付けます。
複数フォルダーを;で区切って指定することができます。;を含むフォルダーを指定する場合は""で囲ってください。
(除外ファイル) … 検索対象から外すファイルパターンを指定します。
(ファイル) で ファイルパターンの先頭に!を付ける ことにより除外ファイルを指定できるのを簡単に使えるようにするものです。
ファイルパターンを;で区切って指定することができます。;を含むファイルパターンを指定する場合は""で囲ってください。(sakura:2.4.0.0以降)
(除外フォルダー) … 検索対象から外すフォルダーパターンを指定します。
(ファイル) で ファイルパターンの先頭に#を付ける ことにより除外フォルダーを指定できるのを簡単に使えるようにするものです。
フォルダーパターンを;で区切って指定することができます。;を含むフォルダーパターンを指定する場合は""で囲ってください。(sakura:2.4.0.0以降)
単語単位で探す
    単語として識別するもののみ検索します。
    スペースなどで区切ると複数単語検索が行えます。
サブフォルダーからも検索する
    指定フォルダーの下層フォルダーからも検索するかどうかを指定します。
英大文字と小文字を区別する
    半角英字の大文字と小文字を区別して検索するかどうかを指定します。
    置換後文字列に$1、\r\n等を置くこともできます。
ファイル毎最初のみ検索 … ファイル毎に1回だけ結果を出力します。
ベースフォルダー表示 … ルートフォルダーの表示とそこからの相対パスで出力します。
フォルダー毎に表示 … サブフォルダー毎にパスをまとめて相対パスで出力します。
文字コードセット
    検索対象となるファイルの文字コードセットを選択します。
    自動選択、SJIS、JIS、EUC、Latin1(Windows-1252)、UTF-16、UTF-16BE、UTF-8、CESU-8、UTF-7、コードページから選択します。
フォルダーの初期値をカレントフォルダーにする
    現在開いているファイルがあるフォルダーを(フォルダー)の初期値にします。次回のダイアログ表示時に反映されます。
正規表現 … 検索条件に、正規表現を使うかどうかを指定します。
クリップボードから貼り付け
    置換後文字列を指定する代わりにクリップボードから貼り付けます。
    正規表現置換の場合、通常「行置換」なのがクリップボードからの場合は「置換の繰り返し」になります。
バックアップ作成 … 置換前にバックアップファイル(.skrold)を作成します。
<結果出力> … 検索条件に合致した箇所の出力方法を指定します。合致した箇所はその先頭の合致箇所の位置が示され、タイプ別設定 『カラー』プロパティで「検索文字列」に指定した色でハイライト表示されます。
該当行 … 合致した箇所のある行全体を表示します。
該当部分 … 合致した文字列だけを表示します。

<結果出力形式> … 検索条件の結果の出力形式を選べます。
ノーマル … 一つづつ列挙して出力します。
ファイル毎 … ファイル毎にまとめて出力します。いわゆるWZ風の形式です。
結果のみ … 結果部分のみ出力します。
[上]ボタン
    フォルダーを1階層上に設定します。
[現フォルダー]ボタン
    このボタンを押すと現在開いているファイルを元に「フォルダー」を設定します。




※正規表現は、正規表現ライブラリによって実現しています。
sakura:2.4.0.0以降では配布物の中に含まれますが、それ以前のバージョンでは別途入手する必要があります。


マクロ構文
・構文: GrepReplace( str1 :String, str2 :String, str3 :String, str4 :String, int5 :Integer, int6 :Integer );
    str1    検索文字列
    str2    置換後文字列
    str3    検索対象にするファイル名
    str4    検索対象にするフォルダー名
    int5    オプション(省略可能、ただしPPAマクロは省略不可)
    int6    文字コードセット(省略可能、ただしPPAマクロは省略不可)
・記録: ○
・解説
オプションには以下の値の組み合わせを指定できます。
    0x01    サブフォルダーからも検索する(省略時規定値)
    0x02    この編集中のテキストから検索する(未実装)
    0x04    英大文字と英小文字を区別する(省略時規定値)
    0x08    正規表現
    0x10    文字コード自動判別
「結果出力」
    0x00    該当行(省略時規定値)
    0x20    該当部分
「出力形式」
    0x00    ノーマル(省略時規定値)
    0x40    ファイル毎
    0x80    結果のみ
文字コードセット
    0x0000    SJIS(省略時規定値)
    0x0100    JIS
    0x0200    EUC
    0x0300    UTF-16
    0x0400    UTF-8
    0x0500    UTF-7
    0x0600    UTF-16BE
    0x0700    CESU-8
    0x0800    Latin1(Windows-1252)
    0x6300    自動選択
    0x010000;  単語単位で探す
    0x020000;  ファイル毎最初のみ検索
    0x040000;  ベースフォルダー表示
    0x080000;  フォルダー毎に表示
    0x100000;  クリップボードから貼り付ける
    0x200000;  バックアップ作成
文字コード自動判別を設定した場合と文字コードセットを 自動選択にした場合の動作は同じです。
int5の文字コードセットよりint6が優先されます。