powershell 2.0 -从日志文件中查找最新的匹配条目



我有一个日志文件,全天不断写入。我需要一种方法来检查日志文件,并找到与特定字符串匹配的最后一个条目。

该条目可以是末尾的5行或5000行。

我不愿意阅读整个日志(到一天结束时可能超过60000行)。

我也不想取出所有匹配的条目,然后得到最后一个,因为当程序运行时,匹配的条目可能占日志的三分之一。

到目前为止,我能找到的一切都是关于使用Select-String获得所有匹配到一个数组,然后得到最后一个,或使用(Get-Content xxx) [-1..-x]获得最后x行。这两个都不是我真正需要的。

到目前为止,我最接近的是:

$fullResult = (Get-Content $location)[-1 .. -5000] | 
                    Select-String -Pattern $srch -List |
                    Select-Object -First 1

但是这并不完美,因为它只读取最后5000行,如果我所追求的结果是在第5001行,它将失败

简单使用Where-Object过滤器有什么问题吗?

Get-Content $location |
  Where-Object { $_ -match $srch } |
  Select-Object -Last 1

相关内容

  • 没有找到相关文章

最新更新