2012-01-13 28 views
1

私はpowershellを使用してJBOSSログファイルを解析しています。 典型的な行はこのようなものでしょう: 2011-12-08 09:01:07636 ERROR [org.apache.catalina.core.ContainerBase [jboss.web] .etc ..powershellは行の最初の文字を削除します

私はすべて削除します。文字1からERRORまでの文字。だから私は日付と時刻、昏睡とそれの直後の数字を削除したい。私の行はERRORという単語で始まり、その前のすべてを削除したい。

私はGoogleで見て、私が見つけた別のものを試しましたが、私は苦労して動作させることはできません。私は部分文字列を使って試してみましたが、ERRORという文字まですべての文字を削除する方法は見つかりませんでした。

任意の助けをいただければ幸いです、

どうもありがとう!ログ行を想定すると

答えて

2

文字列型の変数である。このことを実行する必要があります。

$line = "2011-12-08 09:01:07,636 ERROR [org.apache.catalina.core.ContainerBase.[jboss.web].etc.." 

$ErrorIndex = $line.indexof("Error",0) 
$CleanLogLine = $Line.Substring($ErrorIndex, $line.length) 

参考: http://msdn.microsoft.com/en-us/library/system.string.aspx

5

このワンライナーはあなたのファイルの内容を読み込みます(中例jboss.txt)とは、ERRORを含むすべての行を、その行にあるの後ろに置き換えます。最後にをprocessed_jboss.txtに保存します

get-content jboss.txt | foreach-object {$_ -replace "^.*?(ERROR.*)",'$1'} | out-file processed_jboss.txt 
関連する問題