我有一个像这样的CSV文件:
Computer, App
PC1, Software1
PC1, Software2
PC1, Software3
PC2, Software1
PC2, Software4
PC2, Software5
我想要一个像这样的CSV文件:
Computer, Apps
PC1, Software1;Software2;Software3
PC2, Software1;Software4;Software5
我尝试使用PowerShell,它几乎让我在那里:
import-csv input.csv | group-object Computer
但它给了我计算机名称和一个包含计算机名称和应用程序的表格(这是我开始使用的)...有什么方法可以进一步打破它以获得实际的字符串?
答案 0 :(得分:1)
你走在正确的轨道上。您需要按Computer
进行分组,然后加入论坛中的App
值。
$a = Import-Csv .\mycsvfile.csv
$a |
Group-Object Computer |
Select-Object @{name="Computer";expression={$_.Name}}, @{name="Apps";expression={($_.Group | % { $_.App }) -join ';'}} |
Export-Csv .\mycsvfile.csv -NoTypeInformation
mycsvfile.csv
"Computer","Apps"
"PC1","Software1;Software2;Software3"
"PC2","Software1;Software4;Software5"
答案 1 :(得分:1)
另一种方式,只是为了变化:
Import-Csv .\input.csv |
Group-Object Computer |
% {[pscustomobject]@{ Computer = $_.Name; Apps = ($_.Group).App -join ';'}} |
Export-Csv .\output.csv -NoTypeInformation
这需要PowerShell 3。