2012-01-13 4 views
1

Я разбираю файл журнала JBOSS с помощью powershell. Типичная строка будет быть так: 2011-12-08 09: 01:. 07636 ОШИБКА [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, на ERROR + все, что следует за на этой строке. Наконец, это будет сохранить результат in processing_jboss.txt

get-content jboss.txt | foreach-object {$_ -replace "^.*?(ERROR.*)",'$1'} | out-file processed_jboss.txt 
Смежные вопросы