我有下表(名称是一列,颜色是另一列):
我需要像这样:
我试图在PowerShell中使用group-object,但它只是给了我一个数组中的字段。基本上,我需要在第二列中抓取到达元素(按列1分组)并将它们作为一行添加到分隔符。
必须有一种简单的方法来做到这一点,我不知道。
答案 0 :(得分:1)
我会选择Group-Object。在这里借用mjolinor表,这是我生成相同结果的代码:
$table = @(
[PSCustomObject]@{Name='Bob';Color='Green'}
[PSCustomObject]@{Name='Bob';Color='Red'}
[PSCustomObject]@{Name='Frank';Color='Blue'}
[PSCustomObject]@{Name='Frank';Color='Yellow'}
)
$Table | Group Name | ForEach{$_.Name + " " + ($_.Group.Color -join ",")}
答案 1 :(得分:0)
我使用哈希表:
$table = @(
[PSCustomObject]@{Name='Bob';Color='Green'}
[PSCustomObject]@{Name='Bob';Color='Red'}
[PSCustomObject]@{Name='Frank';Color='Blue'}
[PSCustomObject]@{Name='Frank';Color='Yellow'}
)
$ht = @{}
$Table |
foreach { $ht[$_.Name] += @($_.Color) }
$ht.GetEnumerator() |
foreach {'{0} {1}' -f $_.Name,($_.Value -join ',') }
Bob Green,Red
Frank Blue,Yellow