[記事公開日]2025/10/07
🔍 findコマンドの使い方|テキストや出力結果から特定の文字列を検索する方法
もくじ
はじめに
Windowsのコマンドプロンプトで大量のログや出力結果の中から特定の情報を探したいとき、便利なのが findコマンド です。
Unix/Linuxでいう grep に近い役割を持ち、指定した文字列を含む行だけを抽出できます。
バッチ処理やログ解析、システム調査などにおいて欠かせない強力な検索ツールです。
この記事では、findコマンドの基本構文・オプション・実践例・活用シーン をわかりやすく解説します。
🛠 findコマンドとは?
-
役割:指定したテキスト文字列を含む行を検索・抽出する。
-
用途:ログ解析、出力結果のフィルタリング、エラー検出など。
-
特徴:PowerShellの
Select-StringやLinuxのgrepに相当するWindows標準機能。
📌 基本構文
find [オプション] "文字列" [ファイル名]
例:テキストファイル内を検索
find "Error" C:\logs\system.txt
-
system.txt内の「Error」を含む行を出力します。
標準入力との組み合わせ
dir /s | find ".txt"
-
ディレクトリ内で
.txtを含む行だけを表示。
⚙️ 主なオプション一覧
| オプション | 内容 |
|---|---|
| /V | 指定文字列を含まない行を表示 |
| /C | 一致する行の数のみを表示 |
| /N | 一致した行番号を表示 |
| /I | 大文字・小文字を区別せずに検索 |
💡 基本的な使い方
1. ファイル内の検索
find "user" userlist.txt
-
userlist.txtに含まれる「user」という文字列を検索。
2. 含まない行を抽出
find /V "Error" log.txt
-
「Error」を含まない行をすべて表示。
3. 検索結果の件数のみ表示
find /C "Success" result.log
-
「Success」という文字列を含む行数をカウント。
4. 行番号付きで表示
find /N "Warning" log.txt
-
一致した行の前に行番号を付けて出力します。
5. 大文字小文字を無視して検索
find /I "ERROR" log.txt
-
「Error」「error」「ERROR」などを区別せず検索。
🧠 応用例
標準出力をパイプで絞り込み
netstat -an | find "80"
-
ポート番号80番で通信中の接続のみを表示。
システムエラーログの抽出
type C:\Windows\System32\LogFiles\System.log | find /I "fail"
-
「fail」を含む行だけを抽出してエラー分析に活用。
特定のユーザーを探す
net user | find /I "admin"
-
「admin」を含むアカウント名を表示。
検索結果をファイルに保存
find "backup" backup.log > filtered.txt
-
検索結果を
filtered.txtに書き出して記録できます。
🧩 findとfindstrの違い
| コマンド | 主な用途 | 特徴 |
|---|---|---|
| find | 単純な文字列検索 | 軽量・高速・単語単位では検索不可 |
| findstr | 正規表現対応の高機能検索 | 複数条件・パターン検索に対応 |
💡 複雑な条件での抽出や正規表現を使う場合は
findstrの利用を検討しましょう。
🧾 実務での活用シーン
ログ監視・トラブルシューティング
-
サーバーログから「error」「failed」などのキーワードを瞬時に抽出。
バッチファイルでの条件分岐
find "Success" log.txt >nul
if %errorlevel%==0 echo 正常終了
-
検索結果の有無を判定し、エラー処理を自動化できます。
ファイル一覧のフィルタリング
dir /b /s | find /I ".csv"
-
CSVファイルだけを一覧表示。
⚠️ 注意点
-
ファイルパスや検索語にスペースがある場合は必ずダブルクォーテーションで囲む。
-
/Iオプションを使わない場合は 大文字小文字が区別される。 -
Unicode(UTF-16)形式のファイルは正しく検索できないことがある。その場合は
findstrの使用を推奨。 -
結果が多い場合は
| moreを使うとページ単位で閲覧可能。
📊 まとめ表
| コマンド | 内容 | 例 |
|---|---|---|
| find “Error” log.txt | 文字列を含む行を表示 | シンプル検索 |
| find /V “Error” log.txt | 指定語を含まない行を抽出 | エラーフィルタ |
| find /C “Success” log.txt | 一致行の件数を表示 | ログ件数確認 |
| find /I “user” list.txt | 大文字小文字を無視 | ユーザー検索 |
関連記事
-
findstrコマンドで正規表現を使った高度な検索を行う方法
-
typeコマンドでテキストファイルを表示する方法
-
moreコマンドで長い出力をページ単位で閲覧する方法
-
forコマンドと組み合わせて条件抽出を自動化する方法
さいごに
findコマンドは、テキスト検索の基本を支える軽量ツールです。
単純な検索だけでなく、パイプ(|)やリダイレクト(>)と組み合わせることで、ログ監視・自動処理・トラブル分析 など、幅広い業務に応用できます。
「grepのように使える検索コマンド」として、日常的なコマンド操作の効率を大幅に高めてくれるでしょう。
