English help on website



grepの実行(Ver9.41対応版)
目次コマンド検索系コマンド− grepの実行
grepとは、検索の一種で、指定されたファイル(一般には複数)から文字列を検索し、見つかった位置をすべて出力します。
正規表現はこちら

検索ダイアログから[すべて検索 - 複数ファイル(ヘルプ)]を選んだときもこのヘルプページに誘導されます。
検索ダイアログからgrepの実行はできません。
grepを実行するには、メニューバーの[検索(S)]の一番下にある[grepの実行...]を選びます。

結果は、通常は新しい秀丸エディタをひとつ開き、その内容として出力されるようになっています。
または、出力先の指定で同じ秀丸エディタに出力したり、アウトプット枠に出力もできます。
grep結果用の秀丸エディタの各種設定は、[その他]-[ファイルタイプ別の設定 ]で個別に設定できます。
grep結果でダブルクリックしたり、[タグジャンプ]コマンド(標準でF10)を実行すると、該当のファイルの該当の行を開くことができます。
[次の結果]コマンド(標準でF4)、[前の結果]コマンド(標準でShift+F4)を使うと、grep結果が裏にあるまま操作可能です。

grep結果は、通常の場合、一行のうち約32KB(半角で約3万文字)だけが切り抜かれた形で結果が表示されます。(設定可能)
一行が約3万文字未満であれば一行の内容が全て表示されます。約3万文字で切り抜かれている場合は、タグジャンプをして実際の内容を見ることができます。
[動作環境]→[検索]→[grepの動作]→[文字数制限の設定]で表示される文字数の設定が可能です。
[追加の条件]を指定して何らかの条件を指定している場合は、制限なしと同じ方式でgrepが実行され、結果は一行全てが表示されます。

grepして置換はこちらを参照してください。

grepの動作環境で、[隠しファイルを除外] [指定した拡張子を除外] [拡張子を厳密にチェックする]などの設定ができます。
grepダイアログ左上の▼を押してgrepの動作環境を開くこともできます。
検索する文字列
検索する文字列を入力します。

入力ボックス(コンボボックス)の右横に「>」のような三角マークのボタンがあり、検索文字列に関する操作ができます。
複数行に切り替える操作ができます。(複数行について
正規表現がONの場合は、正規表現の入力を補助します。
このボタンは、Alt+[のキー操作でも押すことができます。

参照: 機種依存文字について

検索するファイル
検索する文字列を入力します。
拡張子がtxtのファイルを全て検索対象とする場合は[検索するファイル]に「*.txt」と入力します。
すべてのファイルを検索対象とする場合は「*.*」と入力します。
セミコロン( ; )で区切ることで、複数のワイルドカードを指定することができます。拡張子txtと拡張子htmlの両方を検索する場合は「*.txt;*.html」と入力します。

検索するファイルの中に「<!*.xxx>」という書き方を加えると、指定したワイルドカードにあてはまるファイル名を除外することができます。(V8.73以降)
「<!」から始まり、ワイルドカードを書いて、「>」までという書き方になります。
「<!subfolder\>」というように最後に\を付けるとサブフォルダ名を除外できます。(V8.85以降)
複数書く場合は、1つのくくりの中で「<!*.xxx;*.yyy>」と書いたり、複数のくくりで「<!*.xxx><!*.yyy>」と記述できます。(複数のはV8.98以降)
[動作環境]→[検索]→[grepの動作]にも除外する設定がありますが、除外は両方とも有効で、混合して除外されます。

[(現在の内容)]を選択すると編集中のファイルのみが検索対象となります。
grep結果に対して[(現在の内容)]でさらに別の文字列でgrepすると、結果の絞込みができます。(新たに行番号を付加しないようになります)

入力ボックス(コンボボックス)の横にある「>」のような三角マークのボタンを押すとあらかじめ用意された拡張子の中から選ぶことができます。
この拡張子は、[その他]→[動作環境]→[ファイル]の[ファイルの種類の編集]で設定されるものと同じものになります。
このボタンは、Alt+\(またはAlt+バックスラッシュ)のキー操作でも押すことができます。

検索するフォルダ
検索するフォルダを指定します。フォルダはセミコロンで区切って複数指定することはできません。

大文字/小文字の区別
ONにすると大文字と小文字を別の文字と見なして検索します。
OFFにすると大文字と小文字を同じ文字と見なして検索します。通常は、半角英字のみが対象です。全角英字も対象にする場合は、あいまい検索もONにしてください。

単語の検索
ONにすると、単語だけを検索します。
例えばC言語のプログラムなどで変数「i」を検索したい場合など、普通に「i」で検索すると、「int」の「i」などでも止まってしまって不便ですが、単語の検索をONにすれば変数の「i」だけで止まってくれます。

正規表現
検索に正規表現を使用する場合はONにします。
[大文字/小文字の区別][単語の検索]のチェック状態も反映します。(V4.00以降)
正規表現検索に使用されるDLLファイル名とそのバージョンが表示されています。
正規表現検索で使用するDLLの変更は、[動作環境]-[環境]で行うことができます。
参照: 正規表現 
参照: \nを使った複数行検索の際の制限について

あいまい検索
検索したい文字列が全角文字か半角文字かがはっきりしない場合にONにします。
このオプションをONにすることで、例えば「バージョン」という文字列を検索すると、テキスト中の「バージョン」という文字列はもちろんのこと、半角で書かれた「バージョン」という文字列も探し出します。逆に「バージョン」と、半角で書かれた文字列を検索しても「バージョン」と「バージョン」の両方がマッチします。ただし、メタキャラクタはあいまい検索の対象外です。
このオプションをONにした場合正規表現用に使用しているDLLによって次のような動作になります。

  • 正規表現DLLにHmJre.dllを使用している場合
    このオプションをONにすると設定ボタンが押せるようになりあいまい検索の詳細設定が行えるようになります
  • 正規表現DLLにJRE32.DLLを使用している場合
    このオプションをONにすると大文字/小文字の区別のオプションはONになります

追加の条件
これをONにすると、追加の条件に従って検索する範囲を制限できます。
カラー表示の条件は、[ファイルタイプ別の設定]→[デザイン]→[複数行コメント]で指定される強調表示があるときに働きます。
grepでは様々な拡張子を同時に検索できますが、それぞれに拡張子に応じたファイルタイプ別の設定が適用されます。
このオプションのチェック状態はダイアログを出すたびにOFFになります。
前回のチェック状態を覚えるようにするには、[その他]→[動作環境]→[検索]→[検索ダイアログ]→[追加の条件の状態を覚える]をONにしておくと覚えるようになります。
通常のgrepとは違う方式でgrepされるようになる影響で、grep結果は最後にまとめて表示されるようになります。

grep結果は、通常の場合、一行のうち約32KB(半角で約3万文字)だけが切り抜かれた形で結果が表示されます。(設定可能)
一行が約3万文字未満であれば一行の内容が全て表示されます。約3万文字で切り抜かれている場合は、タグジャンプをして実際の内容を見ることができます。
[動作環境]→[検索]→[grepの動作]の[文字数制限の設定]で表示される文字数の設定が可能です。
[追加の条件]を指定して何らかの条件を指定している場合は、[制限なし]と同じ方式でgrepが実行され、結果は一行全てが表示されます。

検索文字列を強調
これをONにすると、検索文字列を強調します。
検索ダイアログの[検索文字列を強調]と同じで、連動しています。

ヒットしない行
これをONにすると、ヒットしない行を出力します。
[追加の条件]が指定されている場合は、この設定は無効になります。

サブフォルダも検索
検索するフォルダで指定されたフォルダのサブフォルダに有るファイルも検索対象とします。
[検索するファイル]に[(現在の内容)]を選択した場合は無効です。

最小化状態で実行
秀丸エディタを最小化した状態でgrepを実行します。

出力形式
ファイル名一覧だけ作成
通常、検索にヒットすると、ファイル名と、行番号と、その行の内容が一覧として出力されます。
このオプションをONにすると、ファイル名と、行番号だけ出力されるようになります。
行番号は、最初に見つかった行だけを出力します。
1つのファイル中に複数ヒットするような場合でも、1ファイル1行だけ出力します。

ファイル名をフルパスで出力
ONにするとファイル名がフルパスで出力されます。

桁位置
行内の桁位置も出力します。Unicode(UTF-16)単位です。

ヒット文字列のみ
ヒットした文字列のみを出力します。正規表現のときに意味があります。行をまたがるときは行末までになります。

日付順
ファイルの更新日時の新しい順で出力します。ただし、「;」区切りワイルドカードごと、サブフォルダごとに別々です。

ファイル名なし
ファイル名と行番号の部分を出力しません。(ファイル名一覧だけ作成の場合は無効)

エンコードの種類
ファイルを読み込むときのエンコードの種類を指定します。標準では自動判定になっています。
自動判定の方法は、右側の[...]ボタン([動作環境]→[ファイル]→[エンコード1]と同じ)が適用されます。

V8.90以降では、grepでもエンコード1の設定の[優先順位に従う]が適用できます。
(V8.90未満では、grepでも[優先順位に従う]と同等に動作させるには、[その他]→[動作環境]→[検索]→[grepの動作]の[文字数制限の設定]で、[制限なし]にする必要がありました)

出力先
[自動]は、新規状態の場合は現在の秀丸エディタに出力し、そうでない場合は新しいウィンドウまたはタブに出力します。

[単一]にすると、最後にgrep結果を出力した秀丸エディタを再利用して、そこに結果を出力します。タブモードで別のウィンドウにgrep結果があってもそれを再利用します。

[タブグループごと]にすると、タブモードとき、同じウィンドウにgrep結果のタブがある場合は、そのタブを再利用して出力します。
同じウィンドウにgrep結果のタブが無い場合は、同じウィンドウの新しいタブに出力します。
ここでいうタブグループとは、タブモードにおける1つのウィンドウを意味しています。

何度もgrepを実行してウィンドウが増えるのが煩わしい場合に[単一]または[グループごと]にしておくといいです。

[アウトプット枠]にすると、アウトプット枠が利用可能な場合、アウトプット枠に出力します。
[grepして置換]の場合はアウトプット枠には出力されません。
マクロからgrepを呼び出す場合もアウトプット枠は指定できません。
アウトプット枠は非タブモードでも使えますが、あまり意味が無いのでタブモードで使われることをお勧めします。

参照:[動作環境]→[検索]→[grepダイアログ]