windowsでファイル内の文字列を検索したい時が多々あります。

Linuxならgrepで検索できますが、windowsにはgrepコマンドはありません。

しかし、windowsにもgrepみたいなコマンドが存在します。

それがfindstrです。

今回はwindows版grepのfindstrを紹介します。(grepにはかなわないけど…)

findstrの使い方

findstrを使って指定したフォルダ内の文字列を検索するには下記のコマンドを実行します。

>findstr /s /I /N "検索文字列" ./*
オプションの説明
/s:サブディレクトリも全部再帰的に
/I:大文字小文字を考慮しない
/N:ヒットした行番号も表示

検索する文字列は”(ダブルクォート)で囲む必要があります。

検索ディレクトリには*(ワイルドカード)が使用できます。

logファイルを対象にする場合は「./*.log」など。

日本語検索は苦手

findstrはソースコードなどの検索には便利ですが。

日本語検索時はあまり役に立たないです。

Shift-JISの文字列にしか対応しておらず、UTF-8で書かれた日本語には対応していません。

ファイルをshift-jisに変換すれば検索することはできますが、検索のために文字コードを変換することはお勧めしません。