powershell удалить первые символы строки - PullRequest
1 голос
/ 13 января 2012

Я анализирую файл журнала JBOSS с помощью powershell.Типичная строка будет выглядеть следующим образом: 2011-12-08 09: 01: 07,636 ОШИБКА [org.apache.catalina.core.ContainerBase. [Jboss.web] .etc ..

Я хочу удалить всесимволы от символа 1 до слова ERROR.Поэтому я хочу убрать дату и время, кому и номер сразу после нее.Я хочу, чтобы мои строки начинались со слова ОШИБКА и удаляли все до этого.

Я посмотрел в Google и пробовал разные вещи, которые нашел, но я изо всех сил и не могу заставить его работать.Я попытался с подстрокой и заменить, но не могу найти, как удалить все символы до слова ОШИБКА.

Любая помощь будет принята с благодарностью,

Большое спасибо!

Ответы [ 2 ]

5 голосов
/ 13 января 2012

Этот однострочный прочитает содержимое вашего файла (в примере jboss.txt) и заменит каждую строку, содержащую ОШИБКУ, на ОШИБКУ + все, что следует за в этой строке.Наконец, сохранит результат в процессе_процесс_jboss.txt

get-content jboss.txt | foreach-object {$_ -replace "^.*?(ERROR.*)",'$1'} | out-file processed_jboss.txt
.
2 голосов
/ 13 января 2012

Предполагая, что строка журнала находится в переменной типа string, это должно сделать это:

$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

...