powershell删除行的第一个字符

发布于 2024-12-27 05:07:53 字数 333 浏览 0 评论 0原文

我正在使用 powershell 解析 JBOSS 日志文件。 典型的线路是这样的: 2011-12-08 09:01:07,636 错误 [org.apache.catalina.core.ContainerBase.[jboss.web].etc..

我想删除从字符 1 开始直到单词 ERROR 的所有字符。所以我想删除日期和时间、逗号及其后面的数字。我希望我的行以“错误”一词开头,并删除之前的所有内容。

我查看了谷歌并尝试了我发现的不同东西,但我很挣扎并且无法使其发挥作用。我尝试使用子字符串和替换,但找不到如何删除所有字符,直到出现错误一词。

任何帮助将不胜感激,

非常感谢!

I am parsing a JBOSS log file using powershell.
A typical line would being like this :
2011-12-08 09:01:07,636 ERROR [org.apache.catalina.core.ContainerBase.[jboss.web].etc..

I want to remove all the characters from character 1 until the word ERROR. So I want to remove the date and time, the coma and the number right after it. I want my lines to begin with the word ERROR and delete everything before that.

I looked on google and tried different things I have found but I struggle and can't make it work. I tried with substring and replace but can't find how to delete all characters until the word ERROR.

Any help would be greatly appreciated,

Thanks a lot!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

红ご颜醉 2025-01-03 05:07:53

这一行将读取文件的内容(在示例 jboss.txt 中),并用 ERROR + 后面的内容替换包含 ERROR 的每一行。最后它会将结果保存到processed_jboss.txt中

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

This one-liner will read the contents of your file (in the example jboss.txt) and replace every line containing ERROR by ERROR + whatever follows on that line. Finally it will save the result in processed_jboss.txt

get-content jboss.txt | foreach-object {$_ -replace "^.*?(ERROR.*)",'$1'} | out-file processed_jboss.txt
输什么也不输骨气 2025-01-03 05:07:53

假设日志行位于字符串类型的变量中,这应该可以做到:

$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

Assuming the log line is in a variable of type string this should do it:

$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)

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

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文