2012-01-13 170 views
1

我使用PowerShell解析JBOSS日誌文件。 一個典型的行會是這樣的: 2011-12-08 09:01:07636錯誤[org.apache.catalina.core.ContainerBase [jboss.web] .etc ..powershell刪除行的第一個字符

我想刪除所有字符1中的字符直到單詞ERROR。所以我想刪除它的日期和時間,昏迷和數字。我希望我的行以ERROR開頭,並在此之前刪除所有內容。

我看着谷歌和嘗試不同的東西,我已經找到,但我掙扎並不能使它發揮作用。我嘗試了子字符串並進行替換,但找不到如何刪除所有字符,直到單詞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 +含有ERROR每一行。最後它會將結果保存在processed_jboss.txt中

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