使用PowerShell基于另一列中的信息添加(数学)CSV列

时间:2012-07-20 20:31:37

标签: math powershell csv addition

我很难描述我在标题中需要什么,所以如果这完全没有意义,我提前道歉。

如果我有一个包含2个列的CSV,一个带有人名,另一个带有数字值,我需要在名称列中找到重复项,然后将该人的数值加在一起以获得总数在新的CSV中。

这是真实CSV的非常简化版本

Name,Number
Dog,1
Cat,2
Fish,1
Dog,3
Dog,2
Cat,2
Fish,1

鉴于上述信息,我希望能够产生的是:

Name,Number
Dog,6
Cat,4
Fish,2

我真的不知道如何到达那里,或者是否可以使用PowerShell。我只能使用group-object按名称进行分组,但我不知道如何在此之后添加列。

我在研究这个问题时遇到的最大问题是,谷歌搜索时获得的大部分结果都涉及到向csv添加新列而不执行数学计算。

1 个答案:

答案 0 :(得分:5)

我终于明白了

$csvfile = import-csv c:\csvfile.csv

$csvfile | group name | select name,@{Name="Totals";Expression={($_.group | Measure-Object -sum number).sum}} 

归功于:

http://www.hanselman.com/blog/ParsingCSVsAndPoorMansWebLogAnalysisWithPowerShell.aspx