◀一般トップへ
  • 2670 grepと複数ファイルの置換
    • 2674 RE: grepと複数ファイルの置換
      • 2677 RE2: grepと複数ファイルの置換
        • 2678 Re3(+要望): grepと複数ファイルの置換
        • 2682 Re3: grepと複数ファイルの置換
          • 2683 Re4: grepと複数ファイルの置換
          • 2684 Re4: grepと複数ファイルの置換
            • 2685 Re5: grepと複数ファイルの置換
            • 2689 Re5: grepと複数ファイルの置換
  • [2670] grepと複数ファイルの置換 いが 2003年01月24日 06:24

    最近サクラエディタに乗り換えたのですが、わからないことがありましたので、質問させていただきます。

    grepで複数のファイルから検索したところを一度に複数ファイルを置換することはできないのでしょうか?

    現在はgrepの結果をダブルクリックして、ひとつづつ置換しています。

    よろしくお願いします。
    • [2674] RE: grepと複数ファイルの置換 すい 2003年01月28日 12:41

      >grepで複数のファイルから検索したところを一度に複数ファイルを置換することはできないのでしょうか?
      >
      >現在はgrepの結果をダブルクリックして、ひとつづつ置換しています。

      これは出来ませんねぇ。
      マクロを使ってもまず出来ない内容ですね。。。(少なくとも一発では)
      • [2677] RE2: grepと複数ファイルの置換 すい 2003年01月29日 04:13

        >>grepで複数のファイルから検索したところを一度に複数ファイルを置換することはできないのでしょうか?

        マクロを作ってみました。
        Grep結果のテキストから複数のファイルに対して置換処理をまとめておこないます。

        http://www.egroups.co.jp/files/sakura-editor/User/MACRO/
        ⇒ grepr_20030128_23.cab

        PPA マクロなので、実行には PPA.DLL が必要です。
        PPA.DLL を入手して sakura.exe と同じフォルダに入れておいてください。

        基本的な使用手順は

        1.Grep をおこなう。 ※ 結果出力形式は「ノーマル」を選択しておいてください。
        2.Grep 結果の先頭行(1行目)に「置換後の文字列」を書き込む。
        3.このマクロを実行する。

        例えば
        「フォルダ C:\Hoge\ 以下にある複数のファイル *.pl ,*.cgi の中の
         文字列 perl を jperl に置換したい。」
        なら、
        1.Grep で
          検索条件:perl
          ファイル:*.pl *.cgi
          フォルダ:C:\Hoge
          他、サブフォルダ、英大小文字の区別、正規表現、なども指示して Grepを実行する。
        2.Grep が完了したら、Grep結果表示ウィンドウの先頭行に「jperl」と入力する。
        3.このマクロを実行する。

        と操作します。すると、置換処理内容の確認ダイアログが出ます。処理内容は

         「 Grep で見つけたファイル群に対して、Grepの検索条件文字列を指定の置換後文字列に、
           Grep時の条件(英大小区別する?正規表現使う?など)で、一気に「すべて置換」処理する。」

        と、なります。
        確認ダイアログに対して [はい] と答えると、その置換処理が Grepで見つかった
        複数ファイルに対して一気に実行されます。

        ※ マクロ内の変数 affF の値を書き換える事により、
          ファイル毎に「このファイルに対して置換処理の実行をする/しない」の
          確認ダイアログを<出す/出さない>の設定変更が可能です。

        # 先に Grep結果と同じ形式のテキストファイルを作っておいて、サクラエディタで開いて
        # おいてから このマクロを実行したりしても構いません。


        ※ 「このマクロを実行開始するエディタウィンドウ」以外のサクラエディタの
          ウィンドウを全て閉じてからマクロを実行してください。


        マクロだとこれが精いっぱいではないかと思うのですが、とても使いにくいです。
        1箇所ずつ確認しながら置換<する/しない>を指示していくとか、そういう事が
        出来ませんし。エディタ本体側にこの機能があるとかなり便利かもしれませんね。
        • [2678] Re3(+要望): grepと複数ファイルの置換 ssh 2003年01月29日 09:37

          ▼ すいさん
          > マクロだとこれが精いっぱいではないかと思うのですが、とても使いにくいです。
          > 1箇所ずつ確認しながら置換<する/しない>を指示していくとか、そういう事が
          > 出来ませんし。エディタ本体側にこの機能があるとかなり便利かもしれませんね。
          同感です。
          そういえば、Danaには、「エディタでOpen中の全ファイルを対象に置換」というのも
          あるそうです。これもできたらいいなと思いますがいかがでしょう?
        • [2682] Re3: grepと複数ファイルの置換 いが 2003年01月30日 12:10

          ▼ すいさん
          府狂うファイルに対する置換のマクロを使用させていただきました。
          1.3.6.3を使用しているのですが、マクロを実行すると、「ファイル(置換対象の)が見つかりません」というエラーが出てしまいます。

          Grepの結果から、行末の「(32,34) [EUC]: aaaaaaaaaa」などをすべて削除してから実行するとうまくいきます。

          Grepの仕方が間違っているのかといろいろ試してみたのですが、どうもうまくいきません。
          • [2683] Re4: grepと複数ファイルの置換 いが 2003年01月30日 12:12

            ▼ いがさん
            > ▼ すいさん
            > 府狂うファイルに対する置換の…

            間違えました。「複数」です
          • [2684] Re4: grepと複数ファイルの置換 すい 2003年01月30日 17:06

            >Grepの結果から、行末の「(32,34) [EUC]: aaaaaaaaaa」などをすべて削除してから実行するとうまくいきます。

            ごめんなさい。m(_ _)m
            マクロが悪いです。

            X:\hogehoge(32,34) [EUC]: aa
            で、「文字コード [EUC] だとかが付く」場合の事が完全に考慮もれしています。
            マクロ作っていた時の実験対象ファイルが皆 Shift_JIS のファイルばかりだったので
            気付きませんでした。 (;^^;ゞ
            マクロ中の置換処理の正規表現を1箇所修正すれば直るはずです。> 自力で直せる方

            あとで(たぶん夜)修正版を上げておきます。
            報告感謝です。> いが さん
            • [2685] Re5: grepと複数ファイルの置換 すい 2003年01月31日 07:48

              >あとで(たぶん夜)
              ごめんなさい。もう少し後にりなりそ。現在風邪でダウン中。。。
            • [2689] Re5: grepと複数ファイルの置換 すい 2003年02月01日 21:03

              修正版 upload しておきました。
              http://www.egroups.co.jp/files/sakura-editor/User/MACRO/
              grepr_20030201_20.cab