サクラエディタのgrep機能を使って、複数ファイルの文字列検索・置換を効率化する方法をご紹介します。正規表現や除外条件の設定、複数条件の設定など、全ての機能を解説。ITエンジニアの作業効率を上げる活用事例も紹介しますので、ぜひご覧ください。
1. はじめに:grep機能が便利な理由とは?
1.1 grep検索機能を使うメリットとは
grepとは、元々UNIXコマンドが由来です。1つのファイル中から該当箇所を探す検索機能とは異なり、複数のファイルを対象として一括で検索し、指定した文字列が登場する場所を抜粋して表示するコマンドとなっています。
そのため、例えば「複数のソースファイルを渡って特定の名称の修正が必要になった」などの際に、修正すべきポイントを洗い出す作業に適しています。
1.2 サクラエディタのgrep機能が優れている点:一括置換が可能に!
サクラエディタのgrep機能もUNIXと同様に、複数ファイルが格納されているフォルダを指定して配下のファイル全てから該当箇所を抜粋し、登場位置をリスト化することができます。さらにそのリストをクリックすると、該当するファイルがサクラエディタで自動的に開いて該当箇所が表示されます。
さらに除外条件や正規表現、大文字小文字の区別などの細やかな条件指定も可能という、かゆい所に手が届く仕様となっています。
さらにバージョン2.2.0.0以降のサクラエディタには、grep機能を強化した「grep置換」機能があります。grep機能でリストアップした部分を、任意の文字列に一括で置換できる機能です。
これによりソースを一枚一枚開いて修正する手間を省き、さらに手作業によるミスを防ぐことが可能です。
2. サクラエディタのgrep検索・置換:基本の使い方
2.1 grep検索・置換 の実行手順
grep機能を起動する方法は、2通りあります。
•「Ctrl+G」を押す
•「上部メニュー>検索>grep」を選択する
すると、図のような検索ボックスが表示されます。
■ 条件:検索条件とする文字列を入力します。
•「英大文字と小文字を区別する」にチェックを入れると、入力した検索条件と大文字か小文字かまで一致しなければ、検索対象にならないようになります。チェックを外すと、大文字小文字問わず検索対象となります。
•「正規表現」にチェックを入れると、検索条件に正規表現を使用可能になります。正規表現について詳しくは、次の項目を参照してください。
■ 検索場所:検索対象とするソースやテキストが格納されたフォルダを指定します。
•「サブフォルダーも検索」にチェックを入れると、指定したフォルダの配下にあるフォルダも全て検索対象になります。
■ 対象ファイル:検索する対象のファイル名や拡張子を指定します。
ファイル名には常にワイルドカードが利用可能で、デフォルトでは全ファイルを対象とする「*.*」が入力されています。
例えばファイル名が「sourceナントカ」なものを検索対象としたい場合、「source*.*」と入力します。また.javaファイル全てを対象としたい場合は、「*.java」と入力します。
フォルダのパスを入力する場所の右端に、[...]という小さなボタンがあります。これをクリックするとフォルダ選択ダイアログが表示されます。
この画面でフォルダを選択すると、選択したフォルダのパスがフォームに自動的に入力されます。
ほか、結果の出力形式などを選択し「検索」ボタンを押すと、結果が表示されます。
この検索結果はサクラエディタの新しいウィンドウとして開き、テキスト等で保存することができます。さらに検索結果のうち確認したい行をダブルクリックすると、そのファイルをさらに別ウィンドウで開き、該当箇所を表示することができます。
検索結果のうちファイルパスの次にある座標のようなもの(x,y)は、それぞれ x:何行目の y:何列目を表しています。
2.2 検索結果を使って一括で置換する
検索結果を使って一括で置換するには、バージョン2.2.0.0以降のサクラエディタが必要です。起動にショートカットキーは設定されておらず、「上部メニュー>検索>grep置換」を選択します。
すると図のような検索ボックスが表示されるので、通常のgrep時と同じように項目を埋めていきます。さらに、「置換後」の文字列を入力します。
また「バックアップ作成」にチェックを入れておくと、置換前の古いファイルを「ファイル名.拡張子.skrold」という名前で保存した上で、置換後ファイルが元のファイル名で作成されます。
置換が成功すると、結果として置換処理を行った箇所の一覧が表示されます。
「バックアップ作成」にチェックを入れていたので、元ファイルと同フォルダ内にバックアップファイルが作成されました。
変更後ファイルにgrepをかけると、変更前の条件では対象が0件になり、変更後の条件で7件の結果が出力されました。
3. 応用編:サクラエディタ grep検索・置換を使いこなすテクニック
3.1 検索対象に除外条件を設定する
検索条件には、除外条件を設定することができます。
■ 除外ファイル:検索から除外する対象のファイル名や拡張子を指定します。
こちらもファイル名にはワイルドカードが利用可能です。
■ 除外フォルダー:上と同様に、検索から除外する対象のフォルダー名を指定します。
3.2 検索条件に正規表現やワイルドカードを使う
検索条件には、正規表現やワイルドカードを使用することができます。
(1)まず「正規表現」にチェックを入れます。
(2)すると、検索条件に正規表現やワイルドカードが使用可能になります。
サクラエディタにおける正規表現の使用方法については、前回の記事をご覧下さい。
(3)ワイルドカードを用いたことで、「variable_01」だけでなく「variable_02」なども対象になりました。
3.3 複数行の文字列を検索・置換条件にする
通常のサクラエディタでは、複数行に渡る文字列を指定してgrepすることはできません。しかし複数行検索&置換に対応できるパッチファイルが、有志の方により配布して頂いているようです。
▶ 【sourceforge - #54 正規表現による複数行検索対応(簡易版)】
3.4 検索結果をファイルに保存する
サクラエディタの画面に表示されているgrep結果は、通常のテキストと同じく「ファイル>名前を付けて保存」にて保存可能です。
4. まとめ:grep機能で開発効率を向上させよう
grep機能の活用場面としては、プログラム改修等で変数名に変更があった場合が挙げられます。
膨大にあるソース全体から、その変数名を使っている場所を抜粋することは目視では大変な上に、見落としてしまうかもしれません。そんな場合にgrep機能があれば業務をとても効率化することができます。
さらに修正対象のファイルを1つ1つ開かなくても、一括で新しい変数名に変更することが可能なのです。
ぜひ2.2.0.0から対応したgrep置換機能を、使ってみて下さいね。
弊社が運営するプロエンジニアでは、業界に精通したエージェントがあなたに最適なフリーランス案件探しを全力でサポートいたします。これからフリーランスへ転身したいと考えている方のサポートも行っておりますので、ぜひ一度プロエンジニアにご相談ください。