サクラエディタで一括置換する手順(選択範囲、正規表現対応)
概要
サクラエディタで一括置換する手順を、基本操作から正規表現を使った応用まで紹介していきます。
「置換したい箇所が大量にあって手作業だと終わらない」「特定の範囲だけ置換したい」「正規表現で取得した値を変数のように使って置換したい」、こういう場面ってエンジニアをやっていると本当に多いんですよね。
サクラエディタならCtrl+Rの置換ダイアログひとつで、選択範囲だけの置換も、正規表現を使った高度な置換もまとめて片付けられます。
この記事では基本の置換手順、選択範囲に絞った置換、正規表現での後方参照(CSVをSQLのupdate文に一括変換する実例)、よく使う正規表現パターン、複数ファイルをまたぐGrep置換まで一通り解説します。
論より証拠、かなり便利なので是非見ていってください!
目次
基本の一括置換手順(Ctrl+R)
まずは一番シンプルな一括置換からいきましょう。
メニューの「検索」→「置換」、またはショートカットのCtrl+Rで置換ダイアログを開きます。
- 置換前
- 置換したい文字列を入力する
- 置換後
- 置き換える文字列を入力する
- すべて置換
- ファイル内の一致箇所をまとめて置換する
1件ずつ確認しながら置換したいときは「置換」ボタン、一気に片付けたいときは「すべて置換」ボタンを押せば一括で置換できます。
選択範囲だけを置換する
ファイル全体ではなく一部分だけを置換したいときは、先に置換したい範囲をマウスで選択しておきます。
その状態で置換ダイアログの「選択範囲内」を有効にすると、選択した範囲だけに絞って置換できます。
正規表現を有効にして置換する
ここからが本題です。
置換ダイアログの「正規表現」にチェックを入れると、ただの文字列一致ではなく正規表現を使った置換ができるようになります。
正規表現の強力なところは、「()」で囲った部分を変数のように扱い、「$1」「$2」で置換後に呼び出せる点です。
実例:CSVをSQLのupdate文に一括変換する
具体例としてタイトルにもある、CSV形式のキー情報をupdate文に置換していきます。
今回置換するのは下記のような「[key],[value]」形式で書かれたCSVです。
置換対象
1 | 1,リンゴ |
置換するための正規表現は下記のようになります。
「()」で囲われた内にあるものが変数として使用され、「$1,$2」といった変数に格納されます。
下記の例だと、「,」以前と以降を取得して変数に格納しています。
置換元
1 | (.*),(.*) |
置換先
1 | update fruit set name='$2' where id=$1; |
上記の正規表現で置換すると下記のようにCSVがupdate文に置換されます。
置換結果
1 | update fruit set name='リンゴ' where id=1; |
よく使う正規表現の置換パターン
覚えておくと便利な正規表現を、いくつか挙げておきます。
- 行頭・行末に文字を追加
- 行頭は「^」、行末は「$」を使い、そこに追加したい文字を置換後へ指定する
- 改行を消して1行にまとめる
- 「\r\n」を空文字や「,」などに置換する
- 任意の文字列をまとめて取得
- 「.*」で任意の0文字以上、数字だけなら「[0-9]+」を使う
- 連続する空行を削除
- 空行のパターンを空文字へ置換してスッキリさせる
「()」での取得と「$1」での呼び出しを組み合わせれば、取得した値を並べ替えたり加工したりと応用は無限大です。
複数ファイルをまとめて置換する(Grep置換)
1つのファイルではなくフォルダ内の複数ファイルを横断して置換したいときは、Grep置換を使います。
メニューの「検索」→「Grep置換」から、検索条件・置換後の文字列・対象フォルダ・対象ファイル(*.txtなど)を指定すれば、複数ファイルをまとめて置換できます。
実行前にバックアップを取るか、対象フォルダを必ず確認しておきましょう(- -;
締め
こんな感じで、基本の置換から正規表現・Grep置換まで、サクラエディタの一括置換を一通り紹介しました。
CSVからupdate文を作るような作業も、正規表現を使えば一瞬で終わらせられますよね!
正規表現を知るとエンジニアとして見える景色がかなり広がります(^^
詳細を全部覚えなくてもよいですが、こういったことができると頭に入れておくだけで、いざというときの手段がぐっと増えます。
気になることは頭が勝手に情報を集めるので、だいぶ違いますよ!
以上
便利に快適にエンジニアをやっていきましょう!
それではお疲れさまでした。





