4

タイトルに何が必要かを説明するのに苦労していましたので、それがまったく意味をなさない場合は、事前にお詫び申し上げます。

2つの列があるCSVがある場合、1つは人の名前、もう1つは数値の列です。名前の列で重複を見つけてから、その人の数値を合計して、新しい合計数を取得する必要があります。 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に追加し、数学的な計算を実行しないことです。

4

1 に答える 1

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

于 2012-07-20T21:36:47.077 に答える