Windowsのコマンドプロンプトで、テキストファイル内の特定の文字列を素早く検索したい時に便利なのが find コマンドです。
Linuxの grep コマンドに似た役割を果たしますが、Windowsではよりシンプルな使い方が求められます。
この記事では、find コマンドの基本構文から便利なオプション、具体的な使用例までをわかりやすく解説します。
✅ この記事はこんな人におすすめ
- コマンドプロンプト初心者
- ファイル内から素早く文字列を探したい人
- grepのWindows版を探している人
- findコマンドのオプションと使い分けが知りたい人
findコマンドとは?
find コマンドは、指定したテキストファイル内に含まれる文字列を検索するためのWindows標準コマンドです。
大文字と小文字の区別、行番号の表示、検索行のカウントなど、さまざまなオプションが用意されています。
🧠 UNIX/Linuxでおなじみの grep コマンドとは異なり、findは機能が限定されていますが、Windowsの基本操作には十分対応できます。
基本構文
find "検索文字列" [ドライブ:][パス]ファイル名BashThis is a sample line for testing purposes.
The find command is used to search for specific strings.
An error occurred during the process.
Please check the command syntax and try again.
This line does not contain the target keyword.
Use the dir command to list directory contents.
The word Example appears in this sentence.find-test.txt下記のコマンドは、find-test.txt ファイルの中から “This” を含む行を検索しています。
検索文字列に一致する行が2つ見つかり、それらの行が結果として表示されています。
D:\find-dir>find "This" find-test.txt
---------- find-test.TXT
This is a sample line for testing purposes.
This line does not contain the target keyword.Bash主なオプション一覧
| オプション | 説明 |
|---|---|
/V | 指定した文字列を含まない行を表示 |
/C | 指定した文字列を含む行数をカウント |
/N | 各行の前に行番号を表示 |
/I | 大文字・小文字を区別しないで検索 |
使用例と解説
📌 特定の文字列をファイルから検索する
find "例" C:\example\example.txtBash→ example.txt ファイル内の「例」という文字列を含む行だけが表示されます。
📌 大文字・小文字を区別せずに検索する
find /I "example" C:\example\example.txtBash→ 「Example」「EXAMPLE」なども一致対象に含めて検索します。
📌 指定文字列を含まない行を表示する
find /V "example" C:\example\example.txtBash→ 「example」を含まない行のみが表示され、除外フィルターとして便利です。
📌 文字列を含む行数をカウントする
find /C "example" C:\example\example.txtBash→ 「example」が含まれる行の数だけが返ってきます(中身は表示されません)。
📌 行番号付きで表示する
find /N "test" C:\example\example.txtBash→ 一致する行の前に行番号が表示されます。大量データの中で検索結果を把握しやすくなります。
応用ヒント
- 複数のオプションは組み合わせて使用可能です。
例:大文字小文字を区別せず、行番号付きで表示したい場合
find /I /N "keyword" C:\data\log.txtBash- パイプ(
|)と組み合わせることで、他のコマンドと連携もできます。
⚠️ findコマンドの注意点と制限事項
Windowsの find コマンドには、次のような制限があります。
❌ 1. バイナリファイルには使えない
find コマンドはテキストファイル専用です。
たとえば .exe や .docx、.pdf などのバイナリファイルに使うと、正しく検索できなかったり、文字化けが発生したりします。
👉 使用対象:.txt, .log, .csv などの純粋なテキストファイル
❌ 2. 複数ファイルをまとめて検索できない
以下のような「複数ファイルを対象にした検索」は find ではできません。
find "error" *.txt ← ❌ 対応していないBashどうしても複数ファイルにまたがって検索したい場合は、findstr コマンドを使う必要があります。
❌ 3. 正規表現は使えない
「単語の一部一致」や「行頭・行末」など、複雑な検索条件(正規表現)はサポートされていません。
例えば:
| 検索したい内容 | findで可能か? |
|---|---|
| “error” という単語を含む行 | ✅ 対応 |
| “error” または “fail” を含む行 | ❌ 未対応 |
| “abc” で始まる行だけ抽出 | ❌ 未対応 |
❗ 4. 文字化けが発生する場合がある【重要】
find コマンドは、ファイルの文字コードが「Shift_JIS(ANSI)」であることを前提に動作します。
そのため、以下のようなファイルを検索すると、結果が文字化けすることがあります。
- UTF-8 で保存されたファイル(特にBOM付き)
- Unicode(UTF-16)で保存されたファイル
🔧 対処方法:
- メモ帳などでファイルを開き、「名前を付けて保存」で エンコードを「ANSI」 にして保存し直してください。
- または、文字コードに柔軟な PowerShell の Select-String コマンドを使用する方法もあります。
Select-String -Path .\example.txt -Pattern "検索文字列"PowerShell👉 PowerShellはUTF-8にも対応しているため、文字化けを回避できます。
✅ 代わりに findstr を使おう
より高機能な検索を行いたい場合は、Windowsの findstr コマンドを使用すると便利です。
| 比較項目 | find | findstr |
|---|---|---|
| 複数ファイル対応 | ❌ | ✅ |
| 正規表現 | ❌ | ✅ |
| 大文字小文字無視 | ✅ /I | ✅ /I |
| 行番号表示 | ✅ /N | ✅ /N |
まとめ:findコマンドで効率よく検索しよう
Windowsの find コマンドは、軽量かつシンプルにファイル内のテキスト検索を行える便利なツールです。
特にログファイルや設定ファイルの調査、キーワード抽出などに活用できます。
トラブルシューティングやテキスト分析に役立つので、ぜひ一度試してみてください。

コメント