我有这样的CSV:
Group;Name;Color
Fruit;Apple;green
Vegetable;Carrot;orange
Fruit;Banana;yellow
Fruit;cherry;red
Vegetable;cucumber;green
并希望将其合并(通过PowerShell),以便每个组只出现一次,并在数组(?)旁边显示相应的“名称”,如下所示:
Group;Name;color
Fruit;{Apple,Banana,Cherry};{green,yellow,red}
Vegetable;{Carrot;cucumber};{orange,green}
答案 0 :(得分:2)
使用Group-Object
按对象属性对对象进行分组:
Import-Csv 'C:\path\to\input.csv' -Delimiter ';' |
Group-Object Group |
select @{n='Group';e={$_.Name}},
@{n='Name';e={'{{{0}}}' -f ($_.Group.Name -join ',')}},
@{n='Color';e={'{{{0}}}' -f ($_.Group.Color -join ',')}} |
Export-Csv 'C:\path\to\output.csv' -NoType -Delimiter ';'