コマンド別解説

find(ファイル内の指定文字列を検索)

>>findのオプション簡易解説へ

目次

 

「find」コマンドの使い方

「find」は指定した文字列があるファイルの内容に含まれているかどうか、また何行目に含まれているかを調べるコマンドです。使い方は、

となります。

例えば、「file.txt」ファイルが以下のような内容の場合を考えます。

find(ファイル内の指定文字列の検索) 検索ファイル(その1)

このファイルに対して、「早起き」という文字列を「find」コマンド使用して探す場合には、

とします。

実行結果は以下のようになります。

find(ファイル内の指定文字列の検索) findコマンドの実行

「早起き」という指定した文字列を含む行が表示されています。この例では、ファイル内に指定文字列(「早起き」)を含む行が二つあったということになります。

検索するファイルは複数ファイルを指定でき、「file.txt」ファイルに加えて「file2.txt」ファイルの内容も同時に検索する場合を考えます。「file2.txt」ファイルの内容は以下の通りです。

【file2.txt】
find(ファイル内の指定文字列の検索) 検索ファイル(その2)

 

複数のファイルを対象とする場合は、二つのファイルをスペースを挟み続けて指定します。

以下は、実行結果です。

find(ファイル内の指定文字列の検索) file.txtとfile2.txtから「早起き」を検索

「file2.txt」ファイル内には、一箇所に「早起き」が存在することが分かりました。

 

複数ファイルの指定にワイルドカード「*」を使うこともできます。以下に例を示します。

find(ファイル内の指定文字列の検索) 複数ファイル指定にワイルドカードを使用

 

一方、検索する指定文字列にワイルドカードを使用することはできません。例えば、

としても、「*」はワイルドカードの役目を果たしません。単に、「早*き」という文字列を検索するコマンドになってしまいます。検索文字列にワイルドカードを使用したい場合は、「find」コマンドの強化版である「findstr」コマンドを使います。

 

指定した文字列の行番号も表示する

「/n」オプションを使うと、行番号を添えた表示が可能です。前節までのコマンドに「/n」オプションを指定して実行してみます。

find(ファイル内の指定文字列の検索) 検索結果に行番号を表示

指定文字列を含んだ行の出力の左に、[数字]としてその行数が表示されています。

 

指定文字列を含んだ行の数だけを知りたいときは、「/c」オプションを使えばファイル名の右側にその数だけを表示します。前節までのコマンドに「/c」オプションを指定して実行してみます。

find(ファイル内の指定文字列の検索) 指定文字列が含まれている行数を表示

この例では、「file.txt」ファイルには「早起き」という文字列が一行目と三行目の2行分含まれていますので、「FILE.TXT: 2」となり、「file2.txt」ファイルは一行目だけに含まれているため「FILE2.TXT: 1」となっています。

 

指定した文字列を含まない行を表示する

前節とは反対に、指定した文字列を含まない行について表示させたい場合は「/v」オプションを指定します。

find(ファイル内の指定文字列の検索) 指定文字列が含まれていない行を表示

「早起き」を含んでない行のみが表示されていることが分かります。

「/v」オプションは他のオプションと併用することも可能で、行番号を表示する「/n」を同時に指定すると、

find(ファイル内の指定文字列の検索) 指定文字列が含まれていない行を表示に行番号を追加

となります。

また、行の数を出力する「/c」を併用すると、

find(ファイル内の指定文字列の検索) 指定文字列が含まれていない行数を表示

となります。このとき、空行も「早起き」を含まない行にカウントされていることに注意してください。

 

大文字と小文字を区別しない

通常、「find」コマンドで文字列を検索する場合には、大文字と小文字は別の文字列として扱われます。

例えば、「file.txt」ファイル(以下にもう一度示します)に対して文字列「ide」を検索してみます。

【file.txt】
find(ファイル内の指定文字列の検索) 検索ファイル(その1)

以下、実行結果です。

find(ファイル内の指定文字列の検索) 大文字と小文字を区別して検索

「file.txt」ファイルの最終行には「IDE」と大文字で記述されていますが、どの行も検索に引っかからず、何も表示されません。これは、大文字と小文字を区別しているからです。

大文字と小文字は同一文字列として扱いたい場合は、「/i」オプションを指定します。

以下、実行結果です。

find(ファイル内の指定文字列の検索) 大文字と小文字を区別せずに検索

「/i」オプションを指定すると、最後の「IDE」が同一文字列と扱われ、検索に引っかかるようになりました。

 

さらに機能を強化した「findstr」コマンド

文字列の検索機能では、ここで紹介した「find」コマンドの他に、さらに機能を強化した「findstr」コマンドがあります。「findstr」コマンドは数多くの機能を持っていて非常に強力な文字列サーチコマンドです。あなたが望んでいた操作が「find」コマンドでできなかったとしても「findstr」コマンドでは可能かもしれません。詳しくは「findstr(ファイル内の指定文字列を検索) -コマンド別解説-」をご覧下さい。

 

Windowsバッチファイル初心者へ向けた入門書を作成しました


Windowsバッチファイル初心者の方へ向けた入門書(PDF)を作成しました。


・初めてWindowsバッチファイルを勉強してみようと思っている方

・使ったことはあるが一から基礎を学び直したい方


へ向けて丁寧な解説を行っています。


「全くプログラムを知らない方でも、この入門書を読んだ後には、Windowsバッチファイルの中級者レベルになれるように」をコンセプトに執筆したものです。


この本を読めば、バッチファイルを使ったファイルやフォルダの操作に関しては一通りのことができるようになります。そうなればもう十分中級者と呼べるレベルですので、あとは自分のやりたいことを実現しようとする中で徐々に知識を蓄えていくだけですぐに上級者へなれるでしょう。


詳しくみる

関連ページ

コメントを残す