powershell - 使用 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 实现所有这些的最佳方法是什么?
解决方案
将文件中的 json 字符串转换为对象,ConvertFrom-Json
然后error
使用以下属性将它们分组Group-Object
:
Get-Childitem -path "\path" |ConvertFrom-Json |Group-Object error -NoElement
推荐阅读
- angular - TWA“请安装 chrome dev/canary”
- dotnet-core-pack - dotnet 打包工具时避免将 PackageReference 文件包含到 nupkg 中
- twilio - 即使匹配批准的模板,Twilio whatsapp 消息也会失败
- javascript - 如何从 Dexiejs indexedDB 表中获取单列数据
- javascript - 在 Laravel 上使用 daterangepicker 检查数据库中的日期
- php - 不能将标量值用作数组,我做错了什么?
- amazon-web-services - 将多个服务部署到 Elastic Beanstalk - 使用静态文件和 Python Flask 的示例
- php - 如何使用用户表以外的特定表对用户进行身份验证?
- c# - 全局异常处理程序应该是 ASP.NET 核心 WebApi 管道中第一个注册的中间件吗?
- python - 添加字符串以获得给定数量的海绵散列函数