WindowsのコマンドプロンプトでUNIXの「grep」コマンドに似たコマンドがあると聞き、早速調査してみました。

「netstat」コマンドを使用した時に、あるIPアドレスの部分だけを表示したい場合、UNIXだと「grep」を使えば簡単に絞り込みが出来るのに、Windowsのコマンドプロンプトを使用した場合はそれが出来なかったんですよね。(いや知らなかっただけですが)

その素晴しいコマンドが「find」なんです。

それでは「find」コマンドについて内容を確認していきましょう!

スポンサーリンク

「find」コマンドの使い方

「find」コマンドは、Windosws標準で導入されており、結構簡単に使用する事ができます。

まずは、ファイルの中身からある特定の検索文字列を抜き出す場合

findコマンドの書式
find▲"検索文字列"▲ファイル名
*▲はスペースですのでお間違えのないように!

私めが良く使用する「netstat」の結果を絞り込むする場合

netstaの結果を絞り込みする場合だと
netstat▲|▲find▲":80"
*▲はスペースですのでお間違えのないように!

ポイントとしては、絞込み(検索)したい文字列を” “(ダブルコーテーション)で囲む必要があります。これを忘れないようにしてください!

「find」コマンドで使えるオプションは?

基本的な使い方が分かった所で、オプションについてチェックしておきましょう。find /? で表示できますが、参考までに結果を載せておきます。

===========================================
c:\>find /?
ファイル (複数可) 内のテキスト文字列を検索します。

FIND [/V] [/C] [/N] [/I] [/OFF[LINE]] "文字列" [[ドライブ:][パス]ファイル名

  /V        指定した文字列を含まない行をすべて表示します。
  /C        指定した文字列を含む行の数だけを表示します。
  /N        行番号を表示します。
  /I        大文字と小文字の区別をしないで検索します。
  /OFF[LINE] オフライン属性が設定されたファイルをスキップしません。
  "文字列"  検索する文字列を指定します。 [ドライブ:][パス]ファイル名 検索するファイル (複数可) を指定します。

パスが指定されていないときは、プロンプトで入力されたテキストまたは別のコマンドからパイプ処理で渡されたテキストを検索します。

/V 指定した文字列を含まない行をすべて表示
/C 指定した文字列を含む行の数だけを表示
/N 行番号を表示
/I 大文字と小文字の区別をしないで検索
===========================================
findコマンドオプション一欄

スポンサーリンク

「netstat」コマンドの結果を絞り込んでみよう!

では私めが一番使用する「netstat」コマンドの絞込みをやってみます。

例として80番ポート(http)に接続しているセッションを表示させます。

実行コマンド:
netstat▲–an▲|▲find▲“:80”
netstat+find実行結果

絞込み(検索)したい文字列を” ”(ダブルコーテーション)で囲む必要がありますのでお忘れのないように!(これ重要です)

「find」コマンド、何となくUNIXの「grep」もどきの動作が可能です。皆さんも是非使ってみてください。

しかし次回はもっと便利な「findstr」コマンドについてご紹介します。

乞うご期待!