bat/cmd

findstrコマンド ファイルから文字列を検索 エラー抽出バッチ 作成方法

こんばんは!今日はネットワーク機器のエラーログを探していましたが大量のログからエラーを見つけるのが苦でした。そんな時に役に立つだろうと思ったのがエラーログ抽出バッチファイルです。

よく見かけるネットワーク機器ならshow log等のコマンドでログの中身を確認するかと思います。

現場でログ確認したい時は、ネットワーク機器やサーバー機器のログをテキストファイルなどにエクスポートしログを確認したりします。ログを保存して作業ベンダにログを送ることも多々あります。

findstrコマンド エラー抽出バッチ

サーバー、ネットワークのログは大規模になればなるほど、大量のログからエラーを特定するのがとても大変です。

そこで考えたのがログ抽出バッチです!

まずは順を追ってコマンドの使い方からの説明です。

findstr コマンド ファイルから文字列を検索

findstrコマンドは ファイルの中からテキスト文字列を検索することの出来るコマンドです。

①下記のファイル(test.txt)があります。

※aから順に文字列が並んでいますが i の行にaが含まれています。

findstrコマンド ファイルから文字列を検索

②この中から文字列を探したい場合は下記のように打ちます。

findstr “探したい文字” “検索対象のファイル”

a が含まれている文字列を返す為には、下記のコマンドを打ちます。

findstr a test.txt

④コマンドプロンプトの応答結果は下記になります。

findstrコマンド ファイルから文字列を検索

aの文字を含む文字列だけ表示しています。

このようにfindstrコマンドは、ファイルから文字列探す場合に使用します。

findstr コマンド オプション

findstrコマンドのオプションを使用すると更に検索の幅が広がります。

オプション一部

/v 指定した文字列を含まない行をすべて検索

/g: 指定されたファイルから検索文字列を取得する

/i 大文字・小文字の区別をしないで検索する

/x 完全に一致する行のみ検索する。

/n findstrで条件に一致した行は、行番号をつけて返す。

findstr コマンド オプションを使用した例

findstr /v オプション 使い方

/v オプション (指定した文字列を含まない行をすべて検索) の使用例です。

findstr /v “除外したい文字” “検索対象のファイル”

①下記のコマンドを打ちます。

findstr /v a test.txt

②コマンド応答結果としてtest.txt の a を含む文字列は表示されてません。

findstrコマンド ファイルから文字列を検索

このようにfindstr オプション /v は、文字列を除外して検索ができます。除外できる文字は、1文字だけでなく数文字以上の文字列も除外できます。

findstr /g オプション使い方

/g: オプション(指定されたファイルから検索文字列を取得する)の使用例です。

findstr /g:“文字列を保存したファイル” “検索対象のファイル”

①まずは、文字列を保存しファイルを作成します。a,b,d,e,g,o,pと打ちjogai.txtで保存します。

findstrコマンド ファイルから文字列を検索

②下記のfindstrコマンドを打ちます。

findstr /g:jogai.txt test.txt

②コマンド結果として、/gオプションで指定したファイル(jogai.txt) にある文字列が表示されます。

findstrコマンド ファイルから文字列を検索

findstr /v /g 組合せた 使い方

/v(指定した文字列を含まない行をすべて取得)と/g:(指定されたファイルから検索文字列を取得する)を組み合わせて使用する方法が便利です。一見、/v/gは組み合わせ出来ないと思いますが、組み合わせて使用することができます。

findstr /v /g:”文字列を保存したファイル” “検索対象ファイル”

①検索除外したい文字列をファイルとして保存します。(jogai.txt)

findstrコマンド ファイルから文字列を検索

②下記のコマンドをコマンドプロンプトで打ちます。

findstr /v /g:jogai.txt test.txt

/g指定したファイルの文字列以外が表示されます。

findstrコマンド ファイルから文字列を検索

このようにfindstr g:”ファイル” とすることで、”ファイル”に保存された文字列を表示します。

※補足

末尾に>(リダイレクト)をつけるとエラー抽出.txt ファイルが作成できます。

findstr /v /g:jogai.txt test.txt > エラー抽出.txt

findstrコマンド エラー抽出バッチの作成

①サーバー、ネットワーク機器のログを保存します。(下記はWindowsファイアウォールのログです。)

findstrコマンド ファイルから文字列を検索

②検索除外したいファイルを作成し保存します。(jogai.txt) 今回はALLOW(許可)という文字列を除外します。

findstrコマンド ファイルから文字列を検索

③下記のコードをコピーし、バッチファイルを作成保存します。 (バッチファイル名はfirewall_err抽出.bat)

@echo off

findstr /v /g:jogai.txt firewall.log > エラー.txt

④バッチをクリックすると②のファイルの文字列を除外してログを保存します。

findstrコマンド ファイルから文字列を検索

⑤余計なログは弾いてエラーのみログを保存してくれるので各段にログが見やすくなります。

findstrコマンド ファイルから文字列を検索

もっと簡易的で便利なエラーログ抽出があれば、またご紹介します。それではー!

良ければ過去記事も見てみてください↓

ABOUT ME
なお
フルスタックエンジニアを目指すサラリーマン。インフラ、WEBを中心に色んなIT関連情報に手を出したいと思います。
ブログランキング

COMMENT

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA