[コマンドプロンプト] ファイルの中から文字列を検索する方法(findstrコマンド)

当ページのリンクには広告が含まれています。

初級者~中級者向け

◆ 上級者向け

◆ Windowsのコマンド環境について幅広く知りたい方へ

created by Rinker
¥3,149 (2024/10/04 06:36:37時点 楽天市場調べ-詳細)
目次

ファイルの中から文字列を検索する方法(findstrコマンド)

findstrコマンドを使用することでファイルの中から文字列を検索するすることができます。

コマンド名は「find string(文字列を検索する)」が由来となっています。

コマンドの省略形は存在しません。

フォーマット

FINDSTR [/B] [/E] [/L] [/R] [/S] [/I] [/X] [/V] [/N] [/M] [/O] [/P]
        [/F:ファイル] [/C:文字列] [/G:ファイル] [/D:ディレクトリ一覧]
        [/A:色属性] [/OFF[LINE]] 文字列 [[ドライブ:][パス]ファイル名[ ...]]

[ドライブ:][パス]ファイル名には、検索するファイルを指定します。

複数の文字列を検索する場合には、引数 /C を使わず、各文字列をスペースで区切ります。
たとえば、FINDSTR “hello there” x.y と指定した場合は、ファイル x.y で “hello”または “there” が検索されます。
これに対して、FINDSTR /C:”hello there” x.y と指定した場合はファイル x.y で”hello there” が検索されます。

正規表現クイックリファレンス:
.は、ワイルドカード: 任意の文字
*は、繰り返し: ゼロ個以上の直前の文字またはクラス
^は、行位置: 行頭
$は、行位置: 行末
[class]は、文字クラス: セットの任意の 1 文字
[^class]は、逆クラス: セット以外の任意の 1 文字
[x-y]は、範囲: 指定した範囲の任意の文字
\xは、エスケープ: メタ文字 x のリテラル使用
\<xyzは、単語位置: 単語の先頭
xyz\>は、単語位置: 単語の終わり

使用例

ファイル内で特定の文字列を検索する

findstr "error" logfile.txt
  • "error": 検索する文字列。
  • logfile.txt: 検索対象のファイル名。

このコマンドは、logfile.txt 内で「error」を含む行をすべて表示します。

複数の文字列を検索する

findstr "error warning" logfile.txt
  • "error warning": 「error」または「warning」という文字列を含む行を検索します。

このコマンドは、logfile.txt 内で「error」または「warning」を含む行を表示します。

大文字と小文字を区別せずに検索する

findstr /i "Error" logfile.txt
  • /i: 大文字と小文字を区別せずに検索します。

このコマンドは、logfile.txt 内で「Error」「error」「ERROR」などのバリエーションをすべて検索します。

正規表現を使って検索する

findstr /r "e[a-z]*r" logfile.txt
  • /r: 正規表現を使用するオプション。
  • "e[a-z]*r": 「e」で始まり、「r」で終わる任意の文字列(example, error など)を検索する正規表現。

このコマンドは、logfile.txt 内で「e」から始まり「r」で終わるすべての文字列を含む行を表示します。

サブディレクトリ内のファイルも含めて検索する

findstr /s "error" *.txt
  • /s: 現在のディレクトリとすべてのサブディレクトリ内のファイルを対象にします。
  • *.txt: すべての .txt ファイルを対象に検索します。

このコマンドは、現在のディレクトリとすべてのサブディレクトリ内の .txt ファイルに対して「error」を含む行を検索します。

行頭や行末にマッチする文字列を検索する

findstr "^error" logfile.txt
  • ^error: 行頭が「error」で始まる行を検索します。
findstr "error$" logfile.txt
  • error$: 行末が「error」で終わる行を検索します。

これにより、logfile.txt の各行の行頭または行末に指定した文字列があるかを確認できます。

検索結果を除外して表示する

findstr /v "error" logfile.txt
  • /v: 指定した文字列を含まない行を表示します。

このコマンドは、logfile.txt 内で「error」を含まないすべての行を表示します。

検索結果の行番号を表示する

findstr /n "error" logfile.txt
  • /n: 各行の行番号を表示します。

このコマンドは、logfile.txt 内で「error」を含む行の行番号とその内容を表示します。

オプション一覧

オプションオプションの説明
/B行の先頭にあるパターンを検索します。
/E行の末尾にあるパターンを検索します。
/L検索文字列をリテラルとして使用します。
/R検索文字列を正規表現として使用します。
/S現在のディレクトリとすべてのサブディレクトリから一致するファイルを検索します。
/I検索するときに大文字と小文字を区別しません。
/X完全に一致する行を出力します。
/V一致しない行のみを出力します。
/N一致する各行の前に行番号を出力します。
/Mファイルに一致する行があるときに、ファイル名のみを出力します。
/O一致する各行の前に文字オフセットを出力します。
/P印刷不可能な文字を含むファイルをスキップします。
/OFF[LINE]オフライン属性が設定されたファイルをスキップしません。
/A:属性2 桁の 16 進数で色属性を指定します。”color /?” を参照してください。
/F:ファイル指定したファイルからファイル一覧を読み取ります (/ を指定するとコンソール)。
/C:文字列指定された文字列をリテラル検索文字列として使用します。
/G:ファイル指定されたファイルから検索文字列を取得します (/ を指定するとコンソール)。
/D:ディレクトリセミコロンで区切られた検索されるディレクトリ文字列テキストの一覧を検索します。

初級者~中級者向け

◆ 上級者向け

◆ Windowsのコマンド環境について幅広く知りたい方へ

created by Rinker
¥3,149 (2024/10/04 06:36:37時点 楽天市場調べ-詳細)
よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

コメント

コメントする

CAPTCHA


目次