Windowsのコマンドプロンプトによるファイル内の文字列を正規表現を使用して検索する方法(findstr)
FINDSTRコマンド
説明 : ファイルから文字列を検索
findstr (パラメータ)"文字列" ファイルパス
パラメータ
/B 行の先頭にあるパターンを検索します。
/E 行の末尾にあるパターンを検索します。
/L 検索文字列をリテラルとして使用します。
/R 検索文字列を正規表現として使用します。
/S 現在のディレクトリとすべてのサブディレクトリから一致するファイルを検索します。
/I 検索するときに大文字と小文字を区別しません。
/X 完全に一致する行を出力します。
/V 一致しない行のみを出力します。
/N 一致する各行の前に行番号を出力します。
/M ファイルに一致する行があるときに、ファイル名のみを出力します。
/O 一致する各行の前に文字オフセットを出力します。
/P 印刷不可能な文字を含むファイルをスキップします。
/OFF[LINE] オフライン属性が設定されたファイルをスキップしません。
/A:属性 2 桁の 16 進数で色属性を指定します。"color /?" を参照してください。
/F:ファイル 指定したファイルからファイル一覧を読み取ります (/ を指定するとコンソール)。
/C:文字列 指定された文字列をリテラル検索文字列として使用します。
/G:ファイル 指定されたファイルから検索文字列を取得します (/ を指定するとコンソール)。
/D:ディレクトリ セミコロンで区切られた検索されるディレクトリ文字列テキストの一覧を検索します。
正規表現
正規表現クイック リファレンス:
. ワイルドカード: 任意の文字
* 繰り返し: ゼロ個以上の直前の文字またはクラス
^ 行位置: 行頭
$ 行位置: 行末
[class] 文字クラス: セットの任意の 1 文字
[^class] 逆クラス: セット以外の任意の 1 文字
[x-y] 範囲: 指定した範囲の任意の文字
\x エスケープ: メタ文字 x のリテラル使用
\
サンプルソース
ファイル内で検索文字列と行の先頭文字が一致する行の内容を返す。
ファイル1:test1.txt(内容)
あいうえお
かきくけこ
さしすせそ
あいつてと
(入力)
findstr /B "さ" e:\test1.txt
(出力)
さしすせそ
ちなみに・・・検索文字列を"す"にした場合。
(入力)
findstr /B "す" e:\test1.txt
(出力)
なし
サンプルソース
スペースを含む文字列の検索。
ファイル1:test3.txt(内容)
あい えか う
かきくけこ
さしすせそ
あい う えか
(入力):検索文字列が A or B になる
findstr "あい う" e:\test3.txt
※上記だと"あい"、もしくは、"う"の文字列を含む行を返す。になる
(出力)
あい えか う
あい う えか
/Cを使用すれば、"あい う"の文字列の場合と判定可能。
(入力)
findstr /C:"あい う" e:\test3.txt
(出力)
あい う えか
サンプルソース
複数のファイルに対して、文字列の検索を行う。(正規表現使用)
(入力)
findstr "あ" e:\*
(出力)
e:\test1.txt:あいうえお
e:\test1.txt:あいつてと
e:\test2.txt:あいうえか
e:\test3.txt:あい えか う
e:\test3.txt:あい う えか