1ファイルずつ開いて置換しますか?
サクラエディタなら複数ファイルに対してまとめて文字列置換ができます。
この記事ではそのサクラエディタの機能を紹介します。
「Grep置換」とは?
冒頭で説明した、複数ファイルに対してまとめて置換をかける機能を「Grep置換」といいます。
Grepで検索した文字列に対して置換までやっちゃうイメージです。
Grepとは?な方は以下でGrepについて説明しているので、こちらを参照してください。
Grep置換の使い方
まずGrep置換を使うには、サクラエディタの上のメニューバーから、検索>Grep置換 です。
ショートカットキーはありません。
※バージョン2.2.0.0以降で使えます。
次に、ウィンドウに必要事項を入力します。
・置換前・・・置換前の文字列です。
・置換後・・・置換後の文字列です。
・ファイル・・・置換対象のファイルです。デフォルト(*.*)ではすべてのファイルが対象になっています。
・フォルダ・・・置換対象のファイルの置き場所です。
それでは実際にやってみます。
テキストは何も書かなくていいです。
ここから検索>Grep置換です。
Grep置換のウィンドウが表示されるので、置換したい内容を入力します。
今回はCドライブ直下にあるtestフォルダの中のファイルの「hoge」という文字列を「test」に置換します。
これで置換ボタンを押します。
これで完了です。
Grepの結果と同じような出力結果になりました。
Grepしてヒットしたところ(黄色く塗られた箇所)が置換されました。
フォルダを見てみると、「skrold」とついたファイルができています。
これは置換前のファイルです。
誤って置換してしまってもこのファイルから戻せます。
以上が基本的な使い方です。
より詳細な条件設定
条件入力画面にまだ項目があったように、他にも細かい条件を設定して検索することができます。
次にその中でもよく使う設定を紹介します。
ファイル名の指定
初めにファイル名の指定です。
条件入力画面にファイルという項目があります。
デフォルトの「*.*」のままだと、フォルダ内の全ファイルを検索しますが、
ファイル項目を設定すると、フォルダ内で検索するファイルを指定することができます。
ワイルドカード*(半角アスタリスク)が使えるので、
例えば、テキストファイルだけ(〇〇.txtだけ)検索できればいい時は、
「*.txt」を設定すれば、ファイル名が.txtで終わるファイルだけを検索してくれます。
検索するファイル数が多かったり、ファイルのサイズが大きいと、当然ながら検索にも時間がかかります。
この項目を上手に設定することで、検索にかかる時間を短縮することができます。
サブフォルダからも検索する
次にサブフォルダの検索です。
条件入力のチェックボックスに「サブフォルダからも検索する」という項目があります。
デフォルトでチェックが入っていましたが、このチェックが入っていると、
検索範囲をサブフォルダまで広げることができます。
サブフォルダが複数あり、その複数のサブフォルダ内も全部検索したいときに有効です。
サブフォルダというのは、以下でいうと「サブフォルダ」というフォルダです。
チェックがついていないと、サブフォルダ内のファイルは検索されません。
ちょっと注意点
ファイルが上書き保存されてしまう
使い方のところでも書きましたが、
Grep置換では、通常の置換と違って、ファイルを上書き保存してしまいます。
大量のファイルを扱うので、保存まで自動で実施してくれる方が楽なのですが、
置換に誤りがあると、戻すのも大変なので、
大量に置換する場合は、一度Grepのみ実施してみて、
この検索条件で置換したい対象のみがヒットするか等確認するのがいいと思います。
置換前ファイルが増えていく
前述したように、Grep置換すると、置換前ファイルが生成されて、ファイル数が倍になります。
連続で置換する場合、そのままGrep置換すると、
置換前ファイルも対象となり、その置換前ファイルが生成され、ファイル数がさらに倍になります。
当然処理にかかる時間も増えていくので、連続で置換する場合は、
正しく置換できていることが確認できたら、置換前ファイルは移動か削除してしまうのがよいでしょう。
最後に
大量にファイルを扱う場合に非常に役に立ちます。
覚えておいて絶対に損はない機能なので、ぜひ活用してみてください。