サクラエディターのGrep機能を使う
エンジニアの皆さんは、特定のフォルダにあるソースコードから、特定の文字列だけを抽出したいケースがあると思います。あるいは、複数ファイルに存在する同じ文字列を抽出し、その箇所をリスト化できたら、仕事が一気にはかどるでしょう。
その上、その文字列を一気に別の文字列に置換することができれば、システム開発作業におけるソースコードの修正作業はかなり軽減できるはずです。人気のテキストエディタであるサクラエディタにはGrepという便利な機能があり、以上で述べたことがすべて実現されています。
ここでは、サクラエディタの概要、インストールの方法、Grep機能の使い方などについて解説していきます
サクラエディタとは
「サクラエディタ」は、Windows向けの高機能なオープンソースの日本製テキストエディタです。もちろんメモ帳ソフトとしても使えますが、コードエディタとして優れた機能を持っており、プログラマーで利用している人も少なくありません。
サクラエディタはGitHubを利用しており、希望すればその開発に参加することも可能です。サクラエディタの機能には強調キーワード・アウトライン解析・補完入力などに加え、複数のファイルから特定の文字列を抽出したり、一気に変換したりできるGrep機能があります。
サクラエディタにはダウンロードしてインストール不要で使えるタイプと、ダウンロード後にインストールするタイプの2種類があります。インストールが制限されている環境では、管理者の許可を得た上でインストール不要タイプを利用してください。
【参考】:サクラエディタ
そもそもGrepとは
「Grep」は元々、Unix OSのコマンドで、「Global Regular Expression Print」(全体から正規表現 に一致するものを表示する)から生まれた言葉で、文字列を複数ファイルから検索する機能です。「Grep」はVS CodeやAtomなど多くのテキストエディタに標準で搭載されるようになっています。
サクラエディタのGrep機能
Grepは複数のファイルから特定の文字列などを一括で検索したり、その文字列が存在する場所を抜粋して表示したりするコマンドです。サクラエディタのGrep機能はUNIXが持つGrep機能に加え、検索して一致した結果をリスト表示したり、リスト上から該当箇所をサクラエディタで開いたりすることができます。
他に、今回ご紹介するバージョン「V2.4.1」では、「Grep置換機能」が追加されており、検索してヒットした文字列を一気に他の文字列に置き換えることができます。
たとえば、仕様変更によるプログラムの改修などで、変更があった変数名を膨大なソースから探し出して、変更をしていかなければなりませんが、「Grep置換機能」を用いれば、それらの作業に一瞬で対応することができ、プログラム修正の負荷を大きく軽減することができます。
Grep機能を利用できるファイルはテキストファイルやプログラミング言語など、一部のファイル形式に限定されます。エクセルやワードファイルを直接操作することはできませんが、CSVやテキスト形式に変換すればGrep機能を使うことができます。
サクラエディタをインストールする
ここでは、サクラエディタのダウンロードとインストール方法について簡単に説明します。サクラエディタの利用が初めての方、古いバージョンのサクラエディタを利用されている方は、下記手順に従ってここでインストールを行ってください。
インストーラーをダウンロードする
まずはサクラエディタの公式サイトにアクセスし、画面下部の「最新版ダウンロード」にある「インストーラ・パッケージダウンロード」をクリックします。今回はWindows10環境で行います。
【参考】:サクラエディタ
次の画面に遷移したら、「sakura-tag-v2.4.1-build2849-ee8234f-Win32-Release-Installer.zip」をダウンロードし、開きます。
インストールする
次にダウンロードしたインストーラー「sakura_install2-4-1-2849-x86.exe」をダブルクリックし、表示されたボックスで[すべて展開(X)]ボタンをクリックすると、圧縮ファイルが解凍され、ファイルが展開されたフォルダの「sakura_install2-4-1-2849-x86.exe」をダブルクリックするとインストールが始まります。
いくつか画面が遷移しますが、デフォルトのままで[はい]もしくは[次へ(N)>]と進めていくとセットアップウィザードが完了します。
次の「サクラエディタ セットアップ ウィザードの完了」画面が表示されたら、[完了(F)]ボタンをクリックするとサクラエディタのインストールが終了し、サクラエディタが使えるようになります。
スタートメニューに「サクラエディタ」が追加されていますので、必要に応じて「ピン留め」してください。
サクラエディタのGrep機能の使い方
システム開発の場面で、仕様変更が発生し、変数名を全て変更したいというケースが生じることがあります。全てのソースコードを追っていくのは大変ですし、ましてそれらをすべて漏れなく修正する場合には、大変な労力と細心の注意が求められます。
指定したフォルダ内の全てのファイルから、指定した文字列を検索し、それらを全て置き換えたい時に威力を発揮するのが、サクラエディタのGrep機能です。では実際に、サクラエディタの画面を開いてみましょう。
Grep条件入力画面を開く
まず、サクラエディタを起動し、次のサクラエディタの画面を開きます。
サクラエディタの画面上で、「Ctrl+G」を押すと「Grep条件入力画面」が表示されます。
Grep画面の説明
Grep画面の項目について説明します。通常は【条件】と【フォルダ】の入力だけで検索を行えます。
【条件】:検索したい文字を入力します。 【ファイル】:検索から除外したいファイルを指定します。特に指定がなければ、デフォルトの*.*のままで構いません。 【フォルダ】:検索対象にしたいフォルダを指定します。右端のアイコンをクリックして、フォルダの参照ができますので、パスを入力せずに選択方式で指定することも可能です。
【除外ファイル】:検索対象から除外したいファイルを指定します。特に除外したいファイルがなければ、デフォルトのままで構いません。 【除外フォルダ】:検索対象から除外したいフォルダがあれば指定します。
※Grepにはさまざまな検索オプションがありますが、基本はデフォルトのままで構いません。次第に慣れたらオプションを試してみてください。
Grepで実際に検索してみる
さっそく試しに以下の条件で文字列の検索をしてみます。
「C:\work\temp」フォルダ内のすべてのファイルから「説明文」という文字を検索してみましょう。
サクラエディタのGrep機能は、その処理速度の速さも特徴です。一瞬で処理が終わりました。以下のような検索の結果が表示され、「説明文」という文字が9件見つかりました。
この検索結果画面で実際に内容を確認してみたいファイルがあれば、そのファイルが表示されている個所でダブルクリックをすると、そのファイルの内容が表示されます。13行目に示されたファイルを選択してみました。
その結果、該当ファイルの95行目に「説明文」の文字が表示されています。このようにリスト上からダイレクトにファイルの中身を確認できるのは、サクラエディタのGrep機能の強みです。
このように、探したい文字列が指定したフォルダのどのファイルに存在するのか、その文字列がソースコードのどの行にあるのかが一瞬で分かるのは大変便利です。
検索した文字列を置換してみる
サクラエディタのGrep機能には、検索以外に置換の機能があります。上では、指定したフォルダから「説明文」という文字列を含むファイルを検索することができましたが、ここでは各ファイル上にある「説明文」の文字を「解説文」に一括置き換えてみましょう。
メニューバーの「検索(S)」をクリックすると、次のようなメニューが表示されますので、その中からGrep置換を選択します。
Grep置換の画面が表示されたら、置換前の欄に現在の文字列を入力し、続いて置換後の欄に置き換えたい文字列を入力し、[置換(R)]のボタンをクリックします。
バックアップを作成しておきたい時は、1番下にある「バックアップ作成(K)」にチェックを入れておくと、万一ミスをしてもリカバリーがすぐにできるため安心です。
以上の操作により、次の画面が表示されますので、実際に文字列が置き換わったかどうかを確認してみましょう。
先ほどの検索の際と同じく、確認したいファイルをダブルクリックすると確認ができます。ここでは36行目に表示されていたファイルをダブルクリックして開いてみました。その結果、確かに元の文字列「説明文」が「解説文」に置き換わっていることが確認できました。
今回の例では9件の置き換えだけでしたが、仮にこれが1,000件あり、すべてを手動で置き換えるとしたらかなりの作業量になりますが、そのような膨大な置換作業もGrep機能を使えば一瞬で終わります。
サクラエディタのGrep機能を活用してみよう
この記事では、人気の高機能テキストエディタ、サクラエディタのインストールと、各種機能の中から、Grep機能について紹介しました。
サクラエディタはプログラミングにおいて強い味方となりますが、システム開発の現場でありがちな仕様変更などの際にも、サクラエディタのGrep機能は強力なツールであることが理解できました。まだ使ったことがない方はぜひインストールし、サクラエディタのさまざまな機能を試してみてください。
編集部オススメコンテンツ
アンドエンジニアへの取材依頼、情報提供などはこちらから