0
我有一个CSV有以下的列文件:计数和组由多个列
- ERROR_ID
- 日期
- HH(小时在两位数字)
- 错误描述
它看起来像这样:
在SQL这是非常容易的:
SELECT X,Y,Count(1)
FROM #Table
GROUP BY X,Y
在PowerShell中的多一点不同。
我有一个CSV有以下的列文件:计数和组由多个列
它看起来像这样:
在SQL这是非常容易的:
SELECT X,Y,Count(1)
FROM #Table
GROUP BY X,Y
在PowerShell中的多一点不同。
的Group-Object
cmdlet允许由多个属性分组:
Import-Csv 'C:\path\to\your.csv' | Group-Object ErrorID, Date
,这将给你这样的结果:
Count Name Group ----- ---- ----- 3 1, 15/07/2016 {@{ErrorID=1; Date=15/07/2016; Hour=16}, @{ErrorID=1; Da... 1 2, 16/07/2016 {@{ErrorID=2; Date=16/07/2016; Hour=9}}
但是,表格形式显示分组值就像一个SQL查询将你是否需要从组中提取它们:calculated properties:
Import-Csv 'C:\path\to\your.csv' | Group-Object ErrorID, Date |
Select-Object @{n='ErrorID';e={$_.Group[0].ErrorID}},
@{n='Date';e={$_.Group[0].Date}}, Count
这将产生这样的输出:
ErrorID Date Count ------- ---- ----- 1 15/07/2016 3 2 16/07/2016 1
您可以使用以下方法:
$csv = import-csv path/to/csv.csv
$csv | group-object errorid
Count Name Group
----- ---- -----
2 1 {@{errorID=1; time=15/7/2016; description=bad}, @{errorID=1; time=15/8/2016; description=wow}}
1 3 {@{errorID=3; time=15/7/2016; description=worse}}
1 5 {@{errorID=5; time=15/8/2016; description=the worst}}
$csv | where {$_.errorid -eq "2"}
errorID time description
------- ---- -----------
1 15/7/2016 bad
1 15/8/2016 wow
可以通过管道将第一和第二个例子,以获得所需的结果。
非常感谢。这正是我所期待的。 Appriciate你的帮助。 –