Findstr: この便利な CMD Windows ツールの使用例とヒント


初心者にとって、findstr のようなパターン検索ツールは役に立たないように思えるかもしれません。ただし、システム生成のログ ファイルや、数百行のテキストを含むコマンド ライン出力を扱う場合、必要なツールは findstr だけです。

Linux オペレーティング システムのユーザーは、Grep コマンドの素晴らしいユーティリティにすでに慣れていると思いますが、findstr は Microsoft Windows でも同様の役割を果たします。パイプを使用して 他のコマンド と組み合わせたり、直接実行して複数のテキスト ファイルを解析したりできます。いくつかの例を使用して、findstr がどのように機能するかを見てみましょう。

Findstr コマンドの使用

基本的な構文は単純です。 findstr です。は検索するパターン、は検索するファイルのアドレスです。 コマンド プロンプトを開いて試してみてください。 .

findstr SFC example1.txt

このコマンドは、検索文字列 SFC を含むすべての行を検索して出力します。デフォルトでは、findstr は大文字と小文字を区別するため、SFC に関する記述は一致しないことに注意してください。

パラメータ

オプションのパラメータを含めることで、findstr の動作をさらにカスタマイズできます。 /B や /I などのスイッチは findstr の動作を変更し、検索に追加の条件を課します。例:

findstr /I SFC example1.txt

パラメータとして /I を含めると、検索で大文字と小文字が区別されなくなり、大文字小文字に関係なく、用語のすべての言及が一致します。 findstr のすべてのパラメータのリストは、Microsoftの公式ドキュメント.

にあります。

オプションのパターン

findstr をカスタマイズできるのはパラメータだけではありません。たとえば、を引用符で囲むと、複数のパターンを指定でき、テキスト文字列のいずれかが見つかった場合に一致します。

findstr「SFC DISM」example1.txt

上記は、いずれかの用語を含む一致する行を返します。これは、異なる名前のアイテムのメンションを探すときに便利です。

正規表現

Findstr は複数のファイルを検索できます。 を正規表現に変更すると、コマンドは一致するすべてのファイルで指定されたパターンを検索します。.

findstr SFC *.txt

ワイルドカード文字を使用すると、現在のディレクトリとそのサブディレクトリ内のすべてのテキスト ファイルと正規表現が一致します。結果も同様にファイル名ごとに分類され、どの行がどのファイルからのものかを確認できます。

パイプ

ほとんどの cmd コマンドと同様に、findstr は他のコマンドの出力にも使用できます。ターゲット コマンドの終わりの後にパイプを追加し、を指定せずに findstr を呼び出すだけです。

ディレクトリ | findstr .txt

これにより、dir コマンドの出力に対して findstr 検索が実行され、.txt で終わるファイル リストが返されます。もちろん、この特定の例は実際には役に立ちません。なぜなら、 dir はすでに正規表現を使用して同じタイプのファイルを見つけることができるからです。

出力をテキスト ファイルにリダイレクトする という長いルートを選択し、テキスト ファイルで findstr を使用することもできますが、仲介者を省く方が簡単です。

Windows での Findstr のアプリケーション

findstr の明らかな使用法は、構文だけを見てもすぐにわかります。特定のテキスト文字列を含むテキスト ファイルを検索したり、ファイルに特定の文字列が含まれているかどうかを確認したりできます。

これは理論的には便利ですが、まれなケースを除いてはほとんど使用されません。 Google ドキュメントのようなクラウド サービスの時代では、ほとんどの人はもはや多くのテキスト ファイルを持っていません。

findstr の実際のアプリケーションはもう少し複雑で、より強力な結果が含まれます。より興味深い例をいくつか紹介します。

特定の種類のファイルの検索

dir コマンドには、正規表現を使用してファイル名を検索するオプションがすでに含まれています。ただし、findstr を使用すると、作成時刻や日付など、他の属性を共有するファイルを検索できます。

午後 6 時 43 分にエラーが発生し、その時点で作成されたすべてのログ ファイルを見つけたいとします。 dir コマンドのみを使用する場合は、結果を手動で選別するか、すべてのログ ファイルを取得して比較する必要があります。 findstr を使用すると、これは単純なコマンドになります。

ディレクトリ | findstr 06:43

同じ方法を試して、特定の日に作成されたファイルを検索したり、ディレクトリのリストを取得したりすることができます。

ディレクトリ | findstr DIR

Netstat を使用したネットワーク情報のフィルタリング.

ネットスタット は、コンピュータのネットワーク接続に関するすべての情報を提供する便利な Windows コマンドです。情報が多すぎるため、findstr が役立ちます。

netstat の出力を findstr にパイプすると、特定のプロパティを持つ接続を検索できます。たとえば、これは確立されたすべての接続のリストを取得する方法です。

netstat | findstr が確立されました

このトリックは、ネットワークの問題を診断するときに役立ちます。 findstr をアプリケーション PID とともに使用して、特定のプロセスによって開かれたすべての接続を検索することもできます。

netstat -o | findstr 13120

特定の IP アドレスの取得

ipconfig コマンドを使用すると、IP アドレスを含むシステムのすべてのネットワーク インターフェイスの詳細を表示できます。 findstr を使用すると、全体をスクロールしなくても、特定の種類の IP アドレスを抽出できます。

ipconfig | findstr 一時的

このメソッドを拡張して、サブネット マスクからゲートウェイ アドレスまで、ipconfig からあらゆる情報を取得できます。

スクリプト ファイルの分析

どのプログラミング言語でコーディングしても、スクリプト ファイルは最終的には単なるテキストです。つまり、コード全体を調べなくても、findstr を使用してスクリプトを分析し、特定のセクションを取得できるということです。

特定のスクリプトで if ステートメントがどのように使用されているかを確認したいとします。次のコマンドを使用できます:

findstr if script.ahk

これにより、if ステートメントを使用している行が表示されるだけでなく、使用されている式も表示されます。 /N パラメータを含めて行番号を表示することもできます。これはスクリプト ファイルにとって非常に便利です。

findstr /N if script.ahk

Findstr を使用する価値はありますか?

コマンド ライン インターフェイスを操作する際の主な困難は、ふるいにかけなければならないテキストの量です。 Findstr は、有用な情報を抽出し、ジャンクをフィルタリングするために不可欠なツールです。

すべての端末コマンドはテキストベースの出力を提供するため、findstr を使用して関連データを見つけることができます。 ネットワークの問題のトラブルシューティング から正しいファイルの検索まで、findstr を使用するとあらゆるアクションがより効率的になります。.

他のコマンドとの相乗効果以外でも、findstr はテキスト ファイルの内容を走査する機能に役立ちます。機械生成されたログ ファイルで特定のエラーを見つけたり、複雑なスクリプトのコード セクションを取得したりできます。

つまり、findstr は、上級 Windows ユーザー、特にコマンド ライン インターフェイスに慣れようとしているユーザーにとって不可欠なツールです。

.

関連記事:


27.09.2022