grep, grepdialog, grepdialog2, localgrep文(Ver8.91対応版)
目次検索系文− grep, grepdialog, grepdialog2, localgrep文
 grep文は、パラメータを指定してgrepを実行します。パラメータは以下のように指定します。
grep 検索文字列, 検索するファイル, カレントフォルダ [,word] [,casesense | nocasesense] [,regular | noregular] [,fuzzy] [,subdir] [,icon] [,filelist] [,fullpath] [, hilight | nohilight]
 カレントフォルダとして現在のフォルダを指定する場合は、"."か、または""を指定してください。
 resultには見つかった個数が入ります。途中で中断された場合はresultは-1になります。
 ダイアログが出る文で、ダイアログでキャンセルした場合はresultは-2になります。
 検索したファイルの数をgetresultexで取得可能です。

 正規表現文字列やファイル名の中で「\」を""で囲った文字列の中で指定する場合は、秀丸エディタの文字列定数の仕様により、「\\」と指定しなくてはいけません。 例えば正規表現で「\n」(改行文字)を検索させたい場合は、マクロの中の文字列定数としては"\\n"と指定する必要があります。

 word, casesense, nocasesense, regular, noregular, fuzzy, hilight, nohilightは、searchdialogなどと同じです。

 subdirはサブフォルダも検索をします。
 iconは最小化状態で実行します。
 filelistはファイル名一覧だけ作成します。
 fullpathはファイル名をフルパスで出力します。(V4.00以降)

 openfileと同様に、エンコードの種類をオプションで指定することができます。(V5.11以降)

 searchdownのパラメータで使えるmasknormalなどの各種パラメータを指定できます。(V6.50以降,grepdialog2についてはV8.00以降)

 outputsingleを指定すると出力先を「単一」にできます。(V6.50以降)
 outputsametabを指定すると出力先を「タブグループごと」にできます。(V7.00以降)
   マクロでは「アウトプット枠」を指定することはできません。

 unmatchを指定すると「ヒットしない行」にできます。(V8.00以降)

 searchoption 相当の数値を直接指定できます。(V6.50以降)
 例:grep $str, $file, $dir, #searchoption;
 数値を連続して指定すると、エンコードの種類と、searchoption2相当の値を直接指定できます。(V8.30以降)
 例:grep $str, $file, $dir, #searchoption, #encode, #searchoption2;

 フォルダが存在しない場合は、これ以上マクロを続行できないエラーとして扱われます。この場合disableerrormsgも効きません。
 事前にフォルダが存在するかどうかをチェックするには、if( existfile( "foldder\*.*" ) ){…} という感じで判定することができます。

grep "#include", "*.cpp;*.c", ".", regular;


 grepdialog文は、「grepの実行...」のダイアログボックスを出します。
 通常の「grepの実行...」コマンドを実行した動作とは違います。
 現在の秀丸エディタが新規作成状態でない場合は新規に秀丸エディタが立ち上がります。
grepdialog



 grepdialog2文は、grep文と同様のパラメータ指定をして、ダイアログボックスを出します。(V6.00以降)
 通常の「grepの実行...」コマンドを実行したのと同様に、ダイアログは現在の秀丸に対して出し、出力先は新規作成状態ではその秀丸エディタに出力し、何かファイルを開いている場合は新規作成して出力します。
grepdialog2 検索文字列, 検索するファイル, カレントフォルダ [,word] [,casesense | nocasesense] [,regular | noregular] [,fuzzy] [,subdir] [,icon] [,filelist] [,fullpath] [, hilight | nohilight]



 localgrep文は、現在の内容を対象にしてgrepを実行します。パラメータは以下のように指定してください。
localgrep 検索文字列 [,word] [,casesense | nocasesense] [,regular | noregular] [,fuzzy] [,icon] [, hilight | nohilight]
localgrep "#include", word;
 searchoption 相当の数値を直接指定できます。(V6.50以降)
 例:localgrep $str, #searchoption;
 数値を連続して指定すると、searchoption2相当の値を直接指定できます。(V8.30以降)
 例:localgrep $str, #searchoption, #searchoption2;



 検索文字列には上限があります。上限を超える可能性がある場合は事前に文字数をカウントして判断する必要があります。
 参照: 検索/置換文字列の上限について