パソコン一つで現場作業とかって、ありますよね

トラブル発生時に行った時、早くしないと行けないので、まわりのプレッシャーで、押しつぶされます

そんな時、ログの解析とかを、やることが多いのですが、WindowsノートPCの時って、grepコマンドがなかったりすると、面倒です

そこで、DOSコマンドのfindstrを使うことになるのですが、grepと違うので、思うように抽出出来なかったりします。

なので、使い方を忘れた時の為に、ここに書いておきます

 

Help

ファイル (複数可) 内のテキスト文字列を検索します。

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

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

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

 

単体文字抽出

findstr /c:"ほげ" *.log

 

任意文字列抽出

任意文字は、*単体でなく、.* としないとダメらしい  *は、前文字の繰り返しという意味とのこと  .は、任意一文字だそうな

findstr /r /c:"ほ.*げ" *.log

 

OR抽出

findstr /c:"ほげほげ" /c:"がばがば" *.log

 

AND抽出

ANDは、基本的にパイプで繋げるようだ

findstr /c:"ほげほげ" *.log | findstr /c:"たろうさん"

 

否定抽出

ほげほげ行のなかから「はなこさん」以外

findstr /c:"ほげほげ" *.log | findstr /V "はなこさん"

 

特殊文字

[]は、特殊文字だそうで、¥マークを付けて表現しないといけないらしい  他にもあると思うので、抽出出来なかったら、適当に付けてみればいけそう

findstr /c:"ほ\[げ\]"

 

ファイルへ出力

findstr /c:"ほげほげ" *.log > ほげほげ抽出.txt

 

 

 

Joomla templates by a4joomla