Windows の find と findstr コマンドの違い(コマンドプロンプト)

目次

スポンサードリンク

find コマンド の利用方法

findコマンドは、ファイル (複数可) 内のテキスト文字列を検索するコマンドです。以下はfindコマンドのヘルプです。

C:\Users\username>help find
ファイル (複数可) 内のテキスト文字列を検索します。

FIND [/V] [/C] [/N] [/I] [/OFF[LINE]] "文字列" [[ドライブ:][パス]ファイル名[...]]

/V        指定した文字列を含まない行をすべて表示します。
/C        指定した文字列を含む行の数だけを表示します。
/N        行番号を表示します。
/I        大文字と小文字の区別をしないで検索します。
/OFF[LINE] オフライン属性が設定されたファイルをスキップしません。
"文字列"  検索する文字列を指定します。
[ドライブ:][パス]ファイル名
            検索するファイル (複数可) を指定します。

パスが指定されていないときは、プロンプトで入力されたテキストまた
は別のコマンドからパイプ処理で渡されたテキストを検索します。

findstr コマンド の利用方法

findstrコマンドも findコマンドと同様、ファイルから文字列を検索する際に使用するコマンドです。以下はfindstrコマンドのヘルプです。

パラメータの数を見ても、findstr コマンドの方が高機能なことが分かります。また、findstr コマンドでは 正規表現を使った検索ができます。現在のディレクトリとすべてのサブディレクトリを検索対象にできるのも大きな特徴です。

C:\Users\username>help findstr
ファイルから文字列を検索します。

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

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

複数の文字列を検索する場合には、引数 /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 の詳細な正規表現に関しては、オンライン ヘルプのコマンド リファレンスを
参照してください。



コマンドプロンプトのポケットリファレンス:Windows11対応版

PowerShellの基礎を一通り学べるおすすめ書籍