Powershell:解析日志文件区分大小写

Powershell:解析日志文件区分大小写,powershell,Powershell,我是powershell新手,需要一个非常简单的脚本帮助。 我有一个大的日志文件(100 M),我想解析并返回错误和警告消息。 以下是日志文件的格式: 2013-04-18T10:38:04110信息[00002865]30:toto.toto-警告:变量sousdomn existe déjápour le fichier WORK.RGPDROITS 目的是检查粗体值(可以是WARN;ERROR;INFO)和粗体值为“WARN”或“ERROR”的返回行 以下是在警告值上测试的脚本: $log

我是powershell新手,需要一个非常简单的脚本帮助。 我有一个大的日志文件(100 M),我想解析并返回错误和警告消息。
以下是日志文件的格式:

2013-04-18T10:38:04110信息[00002865]30:toto.toto-警告:变量sousdomn existe déjápour le fichier WORK.RGPDROITS

目的是检查粗体值(可以是WARN;ERROR;INFO)和粗体值为“WARN”或“ERROR”的返回行

以下是在警告值上测试的脚本:

$logfile = "C:\log\logfile.log" 
cat $logfile |
Select-String -pattern WARN -CaseSensitive|
  select -expand line |
   foreach {
            write-output $_.
            }
不幸的是,当包含字符串警告时,它还会返回“INFO”消息:

2013-04-18T10:38:04141信息[00002865]30:toto.toto-警告:法国象征性非特质服装


我想,我需要使用类似-clike选项的东西?

将您的模式替换为:

Select-String -Pattern "\sWARN\s"

\s
表示空格。在上面的代码中,您可以在模式字符串中使用正则表达式。模式警告将捕获字符串“警告”,因此您需要在正则表达式中添加额外的空格\s以避免警告,这样才能生成正确的代码

$logfile = "C:\log\logfile.log";
cat $logfile |
Select-String -pattern WARN\s -CaseSensitive|
  select -expand line |
    foreach {
      write-output $_.
    } 

您不需要感谢,只需将答案标记为有用(向上箭头)或作为答案