findstr

ファイル内のテキストのパターンを検索します。

構文

findstr [/b] [/e] [/l | /r] [/s] [/i] [/x] [/v] [/n] [/m] [/o] [/p] [/f:<file>] [/c:<string>] [/g:<file>] [/d:<dirlist>] [/a:<colorattribute>] [/off[line]] <strings> [<drive>:][<path>]<filename>[ ...]

パラメーター

パラメーター 説明
/b 行の先頭にある場合は、テキスト パターンと一致します。
/e 行の末尾にある場合は、テキスト パターンと一致します。
/l 検索文字列をリテラルで処理します。
/r 検索文字列を正規表現として処理します。 これが既定の設定です。
/s 現在のディレクトリとすべてのサブディレクトリを検索します。
/i 文字列を検索するときに、文字の大文字と小文字を無視します。
/x 正確に一致する行を出力します。
/v 一致を含まない行のみを出力します。
/n 一致する各行の行番号を出力します。
/m ファイルに一致が含まれている場合は、ファイル名のみを出力します。
/o 一致する各行の前に文字オフセットを出力します。
/p 印刷できない文字を含むファイルをスキップします。
/off[line] オフライン属性が設定されているファイルはスキップしません。
/f:<file> 指定したファイルからファイル リストを取得します。
/c:<string> 指定したテキストをリテラル検索文字列として使用します。
/g:<file> 指定したファイルから検索文字列を取得します。
/d:<dirlist> 指定したディレクトリの一覧を検索します。 各ディレクトリは、セミコロン (;) で区切る必要があります (dir1;dir2;dir3 など)。
/a:<colorattribute> 2 桁の 16 進数の色属性を指定します。 追加情報については、color /? と入力します。
<strings> filename に検索するテキストを指定します。 必須。
[\<drive>:][<path>]<filename>[...] 検索する場所とファイルまたはファイルを指定します。 少なくとも 1 つのファイル名が必要です。
/? コマンド プロンプトでヘルプを表示します。

解説

  • すべての findstr コマンド ライン オプションは、コマンド文字列の stringsfilename の前に指定する必要があります。

  • 正規表現では、文字の正確な文字列ではなく、リテラル文字とメタ文字の両方を使用してテキストのパターンを検索します。

    • リテラル文字は、正規表現構文で特別な意味を持たない文字です。代わりに、その文字の出現と一致します。 たとえば、文字と数字はリテラル文字です。

    • メタ文字は、正規表現構文で特別な意味 (演算子または区切り記号) を持つ記号です。

      使用できるメタ文字は次のとおりです。

      メタ文字
      . ワイルドカード - 任意の文字
      * 繰り返し - 前の文字またはクラスが 0 個以上出現します。
      ^ 開始行の位置 - 行の先頭。
      $ 行末の位置 - 行末。
      [class] 文字クラス - セット内の任意の 1 文字。
      [^class] 逆クラス - セット内に含めない任意の 1 文字。
      [x-y] 範囲 - 指定した範囲内の任意の 1 文字。
      \x エスケープ - メタ文字のリテラル使用。
      \<string 先頭の単語の位置 - 単語の先頭。
      string\> 末尾の語の位置 - 単語の末尾。

      正規表現構文の特殊文字は、組み合わせて使用する場合に最も効力を発揮します。 たとえば、ワイルドカード文字 (.) と繰り返し (*) 文字の組み合わせを使用して、あらゆる文字列と一致させることができます (.*)。

      b で始まり ing で終わる文字列と一致するには、大きな式の一部として式 b.*ing を使用します。

  • 一連のファイルで複数の文字列を検索するには、各検索条件を含むテキスト ファイルを個別の行に作成する必要があります。

  • 引数の先頭に /c がない限り、スペースを使用して複数の検索文字列を区切ります。

ファイル x.yhello または there を検索するには、次のように入力します。

findstr hello there x.y

ファイル x.yhello there を検索するには、次のように入力します。

findstr /c:"hello there" x.y

proposal.txt ファイル内の Windows (先頭が大文字の W) という単語のすべての出現箇所を検索するには、次のように入力します。

findstr Windows proposal.txt

現在のディレクトリ内のすべてのファイルと、Windows (大文字小文字の区別なし) という単語を含むすべてのサブディレクトリを検索するには、次のように入力します。

findstr /s /i Windows *.*

FOR で始まり、その前に 0 個以上のスペース (コンピューター プログラム ループのように) が付く行のすべての出現箇所を検索し、各出現箇所が見つかった行番号を表示するには、次のように入力します。

findstr /b /n /r /c:^ *FOR *.bas

テキスト ファイル内で検索するファイルを正確に一覧表示するため、ファイル stringlist.txt の検索条件を使用して、filelist.txt に列挙されているファイルを検索し、結果をファイル results.out に格納するには、次のように入力します。

findstr /g:stringlist.txt /f:filelist.txt > results.out

現在のディレクトリ内の computer という単語を含むすべてのファイルと、大文字と小文字に関係なくすべてのサブディレクトリを一覧表示するには、次のように入力します。

findstr /s /i /m \<computer\> *.*

computer という単語を含むすべてのファイルと、comp で始まるその他の単語 (例: comping や compete) を一覧表示するには、次のように入力します。

findstr /s /i /m \<comp.* *.*