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

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

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

Findstr コマンドの使用

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

findstr SFC example1.txt

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

パラメーター

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

findstr /I SFC example1.txt

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

オプションのパターン

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

findstr “SFC DISM” example1.txt

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

正規表現

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

findstr SFC *.txt

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

パイプ

ほとんどの cmd コマンドと同様に、findstr は他のコマンドの出力にも使用できます。ターゲット コマンドの末尾にパイプを追加して、指定なしで findstr を呼び出すだけです(Just).

dir | findstr .txt

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

出力をテキスト ファイルにリダイレクトし、(redirecting the output to a text file)そのテキスト ファイルに対して findstr を使用するというより長いルートを取ることもできますが、仲介者をカットする方が簡単です。

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

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

これは理論的には有用ですが、まれなケース以外で使用されることはめったにありません。Google Docsのようなクラウド サービスの時代に、ほとんどの人はもはや多くのテキスト ファイルを持っていません。

findstr の実際の適用はもう少し微妙で、より強力な結果を伴います。さらに興味深い例をいくつか紹介します。

特定の種類のファイルを見つける

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

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

dir | findstr 06:43

同じトリックを試して、特定の日付に作成されたファイルを見つけたり、ディレクトリのリストを取得したりできます。

dir | findstr DIR

Netstat によるネットワーク(Netstat)情報(Network Information)のフィルタリング

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

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

netstat | findstr ESTABLISHED

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

netstat -o | findstr 13120

特定の IP アドレスの取得

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

ipconfig | findstr Temporary

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

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

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

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

findstr if script.ahk

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

findstr /N if script.ahk

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

コマンド ライン インターフェイスをナビゲートする際の主な難点は、ふるいにかける必要があるテキストの量です。Findstrは、有用な情報を抽出し、ジャンクを除外するための不可欠なツールです。

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

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

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



About the author

私は 10 年以上の経験を持つソフトウェア開発者です。私は Mac プログラミングを専門としており、TextEdit、GarageBand、iMovie、Inkscape など、さまざまな Mac アプリケーション用に数千行のコードを書いてきました。また、Linux および Windows 開発の経験もあります。開発者としての私のスキルにより、macOS から Linux まで、さまざまなソフトウェア開発プラットフォーム向けの高品質で包括的なチュートリアルを作成することができます。このチュートリアルは、使用しているツールについて詳しく知りたい人にとって最適な選択肢です。



Related posts