linuxを使う方以外にはなじみが薄いですが、Grep(グレップ)というコマンドがあり、これはテキストファイルからある単語や文章を検索することができるものです。
しかもサクラエディタでは、複雑な設定が不要で大量のフォルダ・大量のファイルから単語を検索することができます。
サクラエディタのGREP機能で探せるファイルの形式
探せるファイルの対象は、「メモ帳で開けるファイル」です。txtファイルはもちろん、csvファイルやxmlファイルなどもこの方法で探すことができます。
逆に、残念ながらofficeの各ファイル(xlsx, docx, pptxなど)は探すことができません。これらのファイルをメモ帳で開くと文字化けしてしまうからです(エクセルファイルの場合、csv形式に一括置換するという荒業がありますが…)
GREP検索の開き方
サクラエディタを開いて、「検索」→「Grep」をクリック。Ctrl+Gでも開けます。
すると、以下のようなウィンドウが表示されます。
- 条件:検索したい文字列を入力。正規表現も可能です。
- ファイル:検索対象のファイル名を入力する箇所ですが、基本的にそのままでOK。デフォルトの形だと、指定したフォルダ内すべてのファイルが検索対象になります。
- フォルダ:検索対象のフォルダのパスを指定します。フォルダの中にサブフォルダがある場合は、サブフォルダ→サブフォルダのサブフォルダ…と、すべてのフォルダを見てくれます。
- それ以外のオプションは基本的にそのままで大丈夫です。
早速やってみましょう。テスト用フォルダに、今までのブログ記事のテキストファイルを入れました。
この中から、“ビジネス”という単語が書かれている文を探したいと思います。
「ファイル」に”ビジネス”を入力し、「フォルダ」に、ファイルが格納されているパスを入力します。
その結果が以下です。
このように、25行に”ビジネス”という単語が含まれていることが分かりました。なお、同じファイルの複数行に検索対象の単語を含んでいれば、その行数分だけ表示されます。ただし1文の中に検索対象の単語が2個以上含まれていても、検索結果には1行のみ表示されます。
便利機能
- 検索したい単語が含まれている文のファイルを開く
この検索結果画面で文をダブルクリックすると、その文が存在するファイルを開くことができます。また、カーソルも自動的にその文に合わさっています。 - 正規表現を使って、and検索ができる
正規表現を使うことで、単語1と単語2の両方が含まれている文を検索することができます。例えば、「ビジネス」と「スキル」の両方が含まれている文を検索したい場合は、以下のようにします。
ビジネス.*スキル
“.*”は、正規表現で「任意の0文字以上の文字列」を表します。つまり、「ビジネス」+「なんでもいいから文字(入っていなくてもいい)」+「スキル」という文字列を探すことができます。
以下のどれでもよい、ということです。
・ビジネスマンがスキルを磨く
・ビジネスを行う上で必要なものは、勉強することである。技術は日々進歩しているので、それに遅れないように、また新しい知識を先取りするために、つねにスキルアップを考える必要がある。
注意点は、「ビジネス」よりも先に「スキル」が登場する文は、検索に引っかからない、ということです。
以下のような文はNGです。
・スキルを身に着けるということは、ビジネスマンにとって必要なことである。
必要な場合は、
ビジネス.*スキル|スキル.*ビジネス
と検索するとうまくいきます(「|」は、「または」の意味です)。詳しい使い方は「正規表現の基本的な使い方を一覧にした」を参考にしてください。
GREP検索の使い道
最初にも書いた通り、残念ながらOfficeファイルの中身を検索することはできません。そのため、主にシステム的・技術的な面での使い道になります。
ぱっと思いついたのは、以下のような用途です。
- CSVファイルの中身を見る
例えば、何かのテーブルとデータがCSV形式で保存されていて、あるデータがどのファイルに保存されているかを調べるときに使えそうです。 - ソースコードやHTMLファイル・XMLファイルの中身を見る
例えば、WordpressではXMLファイルを加工して自分のブログのnoindex記事を超簡単に探すことができます。これをGrep機能を用いて行うことができます。
また、システムの仕様変更などで、ソースコードの中に特定の文字があるかどうか調べる、というときに役に立ちます。hogeという項目があり、それの名称をhoge2に変更するとします。その際にGREP機能でhogeが使われているすべてのモジュールを調べることで、名称を変更することによってほかに影響があるかどうかを調べることも可能です。
GREP置換
ついでなので、「Grep置換」についても紹介したいと思います。サクラエディタの「検索」→「Grep置換」で、置換ウィンドウが開きます。
先ほどとの違いは、「置換前」と「置換後」があることです。
「置換前」には、検索したい文字列を入力します。「置換後」には、どのように置き換えるかを入力します。
オプションで「バックアップを作成」にチェックを入れておくと、元の文章が”.skrold”という形式でバックアップで保存されるので安心です。
※元の名称のファイルは、すべて「置換後」に置き換わります。