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你的幫助。 –