使用PowerShell在日志文件中计算唯一错误消息

时间:2018-08-02 09:38:49

标签: powershell

我有几个具有数百行的日志文件,格式如下:

{"time": 0800, "service":"A service", "id": 5, "error":"bad"}  
{"time": 0900, "service":"B service", "id": 6, "error":"good"}  

我希望能够遍历每个文件并输出带有每个唯一错误消息计数的表..类似这样的东西:

错误“坏”出现了5次

错误“好”出现了3次

我不确定在这种情况下是否可以将内容转换为JSON,但是到目前为止,我已经完成了至少识别唯一字符串的以下操作:

Get-Childitem -path "\path" | Select-string -Pattern "good"

这给了我所有的“好”信息。

在我看来,可以使用带有计数器的循环来捕获唯一事件。用PowerShell实现所有这些的最佳方法是什么?

1 个答案:

答案 0 :(得分:4)

使用ConvertFrom-Json将文件中的json字符串转换为对象,然后使用error通过Group-Object属性将它们分组:

Get-Childitem -path "\path" |ConvertFrom-Json |Group-Object error -NoElement