コマンドプロンプトでFINDSTRコマンドを使ってみる

FINDSTRコマンドはファイルから指定した文字列を検索します。 FINDコマンドをより高機能にしたものです。

一般的な使い方としては

FINDSTR 文字列 ファイル名

になります。

以下のテキストがあったとして

TYPE a.txt

FINDSTR a a.txt

文字列aが含まれる行が表示されます。

FINDSTR "hello abc" a.txt

検索する文字列をダブルクォーテーションで括って、スペースで区切ることで 複数の文字列を検索することができます。

FINDSTR /V a a.txt

/Vスイッチをつけると、検索する文字列を含まない行が表示されます。

FINDSTR /N a a.txt

/Nスイッチをつけると、先頭に行番号が表示されます。

FINDSTR /A:3F /N a a.txt

/A:属性スイッチをつけると、行番号などの色を変更できます。 指定できる色は2桁の16進数で、COLORコマンドと同様です。

FINDSTR /I a a.txt

/Iスイッチをつけると、検索する文字列に対して大文字小文字の区別がなくなります。

FINDSTR /B a a.txt FINDSTR /B bcd a.txt

/Bスイッチをつけると、行の先頭にあるかどうかを検索します。

FINDSTR /E e a.txt FINDSTR /E bcd a.txt

/Eスイッチをつけると、行の末尾にあるかどうかを検索します。

FINDSTR /R ^a a.txt FINDSTR /R d$ a.txt FINDSTR /R [bcd] a.txt

/Rスイッチをつけると、正規表現として検索します。 ^aは/B a、d$は/E dと同義です。[bcd]は[]内にある任意の一文字が含まれている行を検索します。

正規表現の詳細についてはヘルプおよび以下のリンクを参照。

Findstr - TechNet

FINDSTR /C:"hello world" a.txt FINDSTR /C:"hello abc" a.txt

/C:文字列 スイッチをつけると、リテラルとして検索します。 例えば、"hello world"なら「hello」と「world」のそれぞれを検索しますが、 /C:"hello world"であれば、「hello world」として検索するようになります。

FINDSTR /X /C:"hello world" a.txt FINDSTR /X /C:"hello" a.txt

/Xスイッチをつけると完全に一致する行のみを検索します。

FINDSTR /S b *

/Sスイッチをつけると、サブディレクトリ(フォルダ)も含めて検索します。

FINDSTR /G:search.txt a.txt

/G:ファイル スイッチをつけると、検索する文字列をファイルから取得します。

DIR /B *.txt | FINDSTR /V a

FINDコマンドと同様、ファイルを指定しない場合、 他のコマンドの結果(パイプ | で渡す)などから文字列を検索することができます。

スイッチ(一部。その他詳細についてはFINDSTR /?などを参照)

/V 検索する文字列を含まない行を検索する
/N 行番号を表示する
/A:属性 行番号などの出力に色属性を指定する
/I 検索する文字列に対して大文字小文字の区別をしない
/B 行の先頭にあるかどうかを検索する
/E 行の末尾にあるかどうかを検索する
/R 正規表現として検索する
/C:文字列 文字列をリテラルとして検索する
/X 完全に一致する行を検索する
/S サブディレクトリ(フォルダ)も含めて検索する
/G:ファイル 検索する文字列をファイルから取得する