バッチコマンド 「findstr」の使い方

本日は、バッチコマンドの「findstr」の使い方について解説いたします。
テキストファイル内で文字列を検索するために使います。

「findstr」の使い方 基本

構文 findstr “文字列” ファイル名

このコマンドは、「ファイル名」で指定されたテキストファイル内に
“文字列”という文字列を検索します。

たとえば、下記のように実行すると、file.txt内で”test”という文字列を検索できます。

findstr file.txt test

file.txt内にtestがあれば、その行が表示されます。

file.txt内にtestがあれば、なにも表示されます。

「findstsr」の使い方 応用

上記、基本的な使い方に加え、いろいろな検索方法があります。

・複数ファイルの検索
findstrは、複数のファイルを検索することもできます。
複数のファイル名を指定することで、それらのファイル内で同時に検索することができます。
findstr “文字列” ファイル名1 ファイル名2 …

・複数の検索語による検索
findstrは、複数の条件を組み合わせて検索することもできます。
たとえば、次のように、”example”または”sample”という文字列を含む行を検索できます。

findstr “example sample” file.txt

・正規表現による検索

findstrは、正規表現を使って検索することもできます。
たとえば、次のように、”example”または”sample”という文字列を含む行を正規表現で検索できます。

findstr /r “^sample” file.txt
上記のように、/rオプションを使用して、正規表現を有効にすることができます。
上記は、行頭がsampleから始まる行を出力します。

「findstr」のオプション

findstrのオプションです。
/i:大文字小文字を区別せずに検索します。
/v:指定した文字列を含まない行を検索します。
/b:行の先頭で指定した文字列が出現する行を検索します。
/e:行の末尾で指定した文字列が出現する行を検索します。
/c::指定した文字列を含む行を検索します。
/n:行番号を表示します。
/m:ファイル名を表示せず、検索結果の行数のみを表示します。
/r:正規表現を使用して検索します。

findstrを使ったバッチファイルのサンプル

findstrのバッチファイルを使ったサンプルです。
バッチファイルは、”test.txt”というファイルの中で”Hello”を検索し、最初に現れた行数を表示します。

test.txtの内容です。

バッチファイルです。

@echo off
setlocal

set search=Hello
set file=test.txt

for /f "tokens=1,2 delims=:" %%a in ('findstr /N "%search%" %file%') do (
  set pos=%%a
)

echo  "%search%" は %pos% 行目にみつかりました。".

実行結果です。
Helloがあるのは2行目と表示してくれました。

まとめ

本日は、バッチコマンド「finstr」の使い方について解説しました。

タイトルとURLをコピーしました