本日は、バッチコマンドの「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」の使い方について解説しました。