Powershell 在第 2 列中将类似的行一起添加值
Powershell add like rows together value in column 2
我一直在寻找一种在 PowerShell 中执行此操作的方法,但一直没有成功。我有一个看起来像这样的文件。
Column1,column2
A,1
B,2
C,3
D,4
A,2
B,3
D,6
A,3
C,2
我想找到一种方法来对这个文件进行排序并添加 column2,最后得到一个看起来像这样的文件。
column1,column2
A,6
B,5
C,5
D,10
如有任何帮助,我们将不胜感激。
Group-Object
and Measure-Object
的组合将为您完成此操作。如果您有 PowerShell 3.0 或更高版本...
Import-Csv c:\temp\test.csv | Group-Object Column1 | ForEach-Object{
[pscustomobject][ordered]@{
Column1 = $_.Name
Column2 = $_.Group.Column2 | Measure-Object -Sum | Select-Object -ExpandProperty Sum
}
} | Export-Csv -NoTypeInformation C:\temp\testOutput.csv
如果您对这些 cmdlet 中的任何一个有疑问,请查阅文档或调试我的脚本以查看它在做什么。
也可以使用具有相似逻辑和相同输出的计算属性。应该也适用于较低的 PowerShell 版本。
Import-Csv c:\temp\test.csv |
Group-Object Column1 |
Select @{Label="Column1";Expression={$_.Name}},@{Label="Column2";Expression={$_.Group.Column2 | Measure-Object -Sum | Select-Object -ExpandProperty Sum}} |
Export-Csv -NoTypeInformation C:\temp\testOutput.csv
我一直在寻找一种在 PowerShell 中执行此操作的方法,但一直没有成功。我有一个看起来像这样的文件。
Column1,column2
A,1
B,2
C,3
D,4
A,2
B,3
D,6
A,3
C,2
我想找到一种方法来对这个文件进行排序并添加 column2,最后得到一个看起来像这样的文件。
column1,column2
A,6
B,5
C,5
D,10
如有任何帮助,我们将不胜感激。
Group-Object
and Measure-Object
的组合将为您完成此操作。如果您有 PowerShell 3.0 或更高版本...
Import-Csv c:\temp\test.csv | Group-Object Column1 | ForEach-Object{
[pscustomobject][ordered]@{
Column1 = $_.Name
Column2 = $_.Group.Column2 | Measure-Object -Sum | Select-Object -ExpandProperty Sum
}
} | Export-Csv -NoTypeInformation C:\temp\testOutput.csv
如果您对这些 cmdlet 中的任何一个有疑问,请查阅文档或调试我的脚本以查看它在做什么。
也可以使用具有相似逻辑和相同输出的计算属性。应该也适用于较低的 PowerShell 版本。
Import-Csv c:\temp\test.csv |
Group-Object Column1 |
Select @{Label="Column1";Expression={$_.Name}},@{Label="Column2";Expression={$_.Group.Column2 | Measure-Object -Sum | Select-Object -ExpandProperty Sum}} |
Export-Csv -NoTypeInformation C:\temp\testOutput.csv