仕事と子供3人の子育てをしながら、短時間でできる料理とつくばの身近な情報・お役立ち情報を発信します
2011-01-26 (水) | 編集 |
ある複数ファイルの文字列を置換したいとき、一行なら通常の置換コマンドでできるときが多いのですが、複数行にわたる文を複数行の文字列で置換したい場合、xyzzyで「エスケープシーケンスを理解」を使うとうまくできます。
さらに、元の文章は同じものだけど、タブの数など違う場合には「正規表現」を使うとうまくできます。

たとえば、

   <p class="test">
   今日は、
   お天気が
   いいです。
   </p>

という文章を

   <p class="test">
   明日は、
   お天気が
   悪いです。
   </p>

と変更したいとします。

ファイルに含まれる他の文字列にもよりますが、

まず、改行やタブをエスケープシーケンスで置き換えます。

<p class="test">\n\t今日は、\n\tお天気が\n\tいいです。\n\t</p>

xyzzyのメニュー→検索→Gresregで

検索:<p class="test">\n\t今日は、\n\tお天気が\n\tいいです。\n\t</p>
置換:<p class="test">\n\t明日は、\n\tお天気が\n\t悪いです。\n\t</p>
ファイル名:*
「エスケープシーケンスを理解しろ」にチェック

とします。

うまくいきましたか?

ここで、ファイル名をあらかじめいくつか指定したいときは、

test1.txt; test2.txt; *.html

のようにセミコロンで区切って記述します。また、拡張子だけ指定したいときは、ファイル名にアスタリスクを指定して、拡張子を記述します。

次に、複数ファイルで、内容は同じだけどタブの数など違う場合、正規表現を使います。

   <p class="test">\n.*\n.*お天気が\n.*\n.*</p>

とすると、タブの数には関係なく

   <p class="test">
   今日は、
   お天気が
   いいです。
   </p>

の文章を検索してくれるので、Gresregで

「正規表現」
「エスケープシーケンスを理解しろ」

にチェックを入れて置換します。
関連記事

ブログランキング・にほんブログ村へ
プラチナレポーター
コメント:
この記事へのコメント:
コメント:を投稿する
URL:
コメント:
パスワード:
非公開コメント: 管理者にだけ表示を許可する