我有几个具有数百行的日志文件,格式如下:
{"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实现所有这些的最佳方法是什么?
答案 0 :(得分:4)
使用ConvertFrom-Json
将文件中的json字符串转换为对象,然后使用error
通过Group-Object
属性将它们分组:
Get-Childitem -path "\path" |ConvertFrom-Json |Group-Object error -NoElement