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

时间:2015-07-13 09:32:59

标签: powershell-v2.0 select-string

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

此条目可以是距离末尾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行,它将会失败。

1 个答案:

答案 0 :(得分:1)

仅使用obj-c过滤器有什么问题吗?

Where-Object