我是PowerShell的新手,我需要一个非常简单的脚本帮助。 我有一个大日志文件(100 M),我想解析并返回错误和警告信息 以下是日志文件的格式:
2013-04-18T10:38:04,110 INFO [00002865] 30:toto.toto - 警告:La变量sousdomnexistedéjàpourle fichier WORK.RGPDROITS。
目的是检查粗体值(可能是WARN; ERROR; INFO)并返回粗体值为“WARN”或“ERROR”的行
以下是在WARN值上测试的脚本:
$logfile = "C:\log\logfile.log"
cat $logfile |
Select-String -pattern WARN -CaseSensitive|
select -expand line |
foreach {
write-output $_.
}
不幸的是,当它们包含字符串WARNING:
时,它也会返回“INFO”消息2013-04-18T10:38:04,141 INFO [00002865] 30:toto.toto - 警告:Référence象征性服装NBPERA非特质。
我想,我需要使用类似-clike的选项吗?
答案 0 :(得分:1)
用以下代码替换您的模式:
Select-String -Pattern "\sWARN\s"
\s
用于空间。您可以在模式字符串
答案 1 :(得分:0)
在上面的代码模式中,WARN将捕获字符串“WARNING”,因此您需要在正则表达式中添加额外的空格以避免警告,因此正确的代码将是
$logfile = "C:\log\logfile.log";
cat $logfile |
Select-String -pattern WARN\s -CaseSensitive|
select -expand line |
foreach {
write-output $_.
}