目次
「find」コマンドの使い方
「find」は指定した文字列があるファイルの内容に含まれているかどうか、また何行目に含まれているかを調べるコマンドです。使い方は、
1 |
find [オプション] "[指定文字列]" [検索対象ファイル] |
となります。
例えば、「file.txt」ファイルが以下のような内容の場合を考えます。
このファイルに対して、「早起き」という文字列を「find」コマンド使用して探す場合には、
1 |
find "早起き" file.txt |
とします。
実行結果は以下のようになります。
「早起き」という指定した文字列を含む行が表示されています。この例では、ファイル内に指定文字列(「早起き」)を含む行が二つあったということになります。
検索するファイルは複数ファイルを指定でき、「file.txt」ファイルに加えて「file2.txt」ファイルの内容も同時に検索する場合を考えます。「file2.txt」ファイルの内容は以下の通りです。
【file2.txt】
複数のファイルを対象とする場合は、二つのファイルをスペースを挟み続けて指定します。
1 |
find "早起き" file.txt file2.txt |
以下は、実行結果です。
「file2.txt」ファイル内には、一箇所に「早起き」が存在することが分かりました。
複数ファイルの指定にワイルドカード「*」を使うこともできます。以下に例を示します。
1 |
find "早起き" file*.txt |
一方、検索する指定文字列にワイルドカードを使用することはできません。例えば、
1 |
find "早*き" file.txt |
としても、「*」はワイルドカードの役目を果たしません。単に、「早*き」という文字列を検索するコマンドになってしまいます。検索文字列にワイルドカードを使用したい場合は、「find」コマンドの強化版である「findstr」コマンドを使います。
指定した文字列の行番号も表示する
「/n」オプションを使うと、行番号を添えた表示が可能です。前節までのコマンドに「/n」オプションを指定して実行してみます。
1 |
find /n "早起き" file.txt file2.txt |
指定文字列を含んだ行の出力の左に、[数字]としてその行数が表示されています。
指定文字列を含んだ行の数だけを知りたいときは、「/c」オプションを使えばファイル名の右側にその数だけを表示します。前節までのコマンドに「/c」オプションを指定して実行してみます。
1 |
find /c "早起き" file.txt file2.txt |
この例では、「file.txt」ファイルには「早起き」という文字列が一行目と三行目の2行分含まれていますので、「FILE.TXT: 2」となり、「file2.txt」ファイルは一行目だけに含まれているため「FILE2.TXT: 1」となっています。
指定した文字列を含まない行を表示する
前節とは反対に、指定した文字列を含まない行について表示させたい場合は「/v」オプションを指定します。
1 |
find /v "早起き" file.txt |
「早起き」を含んでない行のみが表示されていることが分かります。
「/v」オプションは他のオプションと併用することも可能で、行番号を表示する「/n」を同時に指定すると、
1 |
find /v /n "早起き" file.txt |
となります。
また、行の数を出力する「/c」を併用すると、
1 |
find /v /c "早起き" file.txt |
となります。このとき、空行も「早起き」を含まない行にカウントされていることに注意してください。
大文字と小文字を区別しない
通常、「find」コマンドで文字列を検索する場合には、大文字と小文字は別の文字列として扱われます。
例えば、「file.txt」ファイル(以下にもう一度示します)に対して文字列「ide」を検索してみます。
【file.txt】
1 |
find "ide" file.txt |
以下、実行結果です。
「file.txt」ファイルの最終行には「IDE」と大文字で記述されていますが、どの行も検索に引っかからず、何も表示されません。これは、大文字と小文字を区別しているからです。
大文字と小文字は同一文字列として扱いたい場合は、「/i」オプションを指定します。
1 |
find /i "ide" file.txt |
以下、実行結果です。
「/i」オプションを指定すると、最後の「IDE」が同一文字列と扱われ、検索に引っかかるようになりました。
さらに機能を強化した「findstr」コマンド
文字列の検索機能では、ここで紹介した「find」コマンドの他に、さらに機能を強化した「findstr」コマンドがあります。「findstr」コマンドは数多くの機能を持っていて非常に強力な文字列サーチコマンドです。あなたが望んでいた操作が「find」コマンドでできなかったとしても「findstr」コマンドでは可能かもしれません。詳しくは「findstr(ファイル内の指定文字列を検索) -コマンド別解説-」をご覧下さい。