我有一个日志文件,它会在一整天内不断写入。 我需要一种方法来检查日志文件,并找到与特定字符串匹配的最后一个条目。
此条目可以是距离末尾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行,它将会失败。
答案 0 :(得分:1)
仅使用obj-c
过滤器有什么问题吗?
Where-Object