5. グローバル検索 ( grep ) の活用 

   5−1  グローバル検索の実際
   5−2  ワープロ文書からテキストファイルへ

 プログラマをやるような人以外は、テキストファイルの文字列を一度にたくさん
 置換するといった作業はあまりやらないでしょう。今これをお読みの方には、
 すでにあるテキストファイルから必要な文字列(文章)を探し出すという使い方
 が一番「使える」のだろうと思いますので、「グローバル検索」を紹介します。


5−1 グローバル検索の実際

グローバル検索とは、複数のテキストファイルの中を調べて文字列を検索する という機能です。GREP機能と呼ぶことも多いようです。
「現在検索中のファイルに目的の単語が存在した場合は、そのファイルのウィンドウを開いて表示する」 という仕組みにすると、例えば1000個のファイルで検索がヒットした場合、1000個のウィンドウを開くはめになってしまいます。 それでは困るので、グローバル検索では通常、検索結果(検索がヒットした箇所)を一定の書式のリスト
ファイル名   行位置  (該当部分の実際の文字列)  
ファイル名   行位置  (該当部分の実際の文字列)
ファイル名   行位置  (該当部分の実際の文字列)
   :
   :
として出力する仕組みになっています。
多くのエディタでは、このりストがひとつのテキストファイルの形で出力され、その結果ファイルから、 該当ファイルの該当箇所にジャンプできる機能も付いています。 これを「タグジャンプ」機能といいます。
秀丸では、[検索(S)]>[grepの実行(G)...] メニューにその機能があります。
コマンドを実行すると、grep検索用の窓が表示されます。

 ◆ grep機能の使用例 ◆

伊勢物語、土佐日記から和歌を検索します。ise.txttosa.txt では、 和歌は必ず前後から独立した1行となっていて、行頭には全角スペースが2つついています(2字下げしてある)。 この規則を利用します。

(1) 秀丸を起動し、[検索(S)]-[grepの実行(G)...] を実行します。
(2) 検索用の窓が出たら、以下の入力・設定をします。

grep

  ・「正規表現」をチェックします。
  ・「検索する文字列」に ^□□ を入力します。
   ( で全角スペースを表現します。以下しばらく同じ)
  ・「ドライブ」一覧を操作して、 d:ドライブ を選択します。
  ・「フォルダ」一覧を操作して、 D:\TEXT  を選択します。
    (ドライブとフォルダの指定は、動作環境設定で「新タイプ」表示
     を設定した場合、方法が異なります)
  ・「検索するファイル」に、 ise*.txt;tosa*.txt と入力します。

(3) [OK]をクリックして検索を実行すると、もう1つ秀丸のウィンドウが開き、
   検索結果が以下の通りに表示されます。全部で271行ありました。


 ise.txt(12): □□春日野の若むらさきのすりごろもしのぶの乱
 ise.txt(15): □□陸奥のしのぶもぢずりたれゆゑに乱れそめに
 ise.txt(28): □□起きもせず寝もせで夜を明かしては春のもの
 ise.txt(35): □□思ひあらばむぐらの宿に寝もしなむひじきも
 ise.txt(46): □□月やあらぬ春やむかしの春ならぬわが身ひと
  :
  :

検索結果の該当箇所に飛びたい時は、出力された行にカーソルを持ってゆき、 [F10]キーを押します(タグジャンプ)。 すると新しい秀丸のウィンドウが開き、該当するファイルの該当する行にカーソルがセットされます。

検索結果をテキストファイルとして保存することもできます。そうすれば、 伊勢物語と土佐日記の和歌一覧が出来上がったことになります。
行頭のタグが邪魔ならば、出力したテキストに対して、以下の条件で置換(全置換)を行うといいでしょう。

  検索(S):  ^.*□□
  置換(E):

       ※ ↑ 置換文字列には、何も入力しません。

秀丸の grep は、現在開いて編集中のテキストに対しても実行することができます。 その場合、「検索するファイル」 のドロップダウンリストから「(現在の内容)」 を選びます。


5−2  ワープロ文書からテキストファイルへ


秀丸で grep 検索をするには、文書がテキストファイルでなければなりません。 手持ちの文書がテキスト形式でないと、秀丸による grep を利用することができませんが、 ほとんどのワープロソフトには、呼び出した文書ファイルを「テキスト形式で保存」する機能があります。 この機能を用いて文書をテキスト形式で持っておけば、いつでも秀丸による grep 機能の恩恵にあずかることができます。

Microsoft Word を例にとると、 [ファイル]>[名前を付けて保存...]を実行し、 出てきた「保存」ウィンドウの下部にある「ファイルの種類」を「テキストファイル」に変更してから文書を保存します。 書式や用紙設定の情報は当然失われます。

FileType

文書の一部分だけテキストファイルにしたい場合は、該当部分をコピーして、エディタ(メモ帳で十分です)に貼り付け、 それを保存するのがお手軽です。