2

我有一个测试输入csv文件,如下:

ID;Name;Level
1;Alpha;A
2;Bravo;A
3;Charlie;A
4;Delta;A
5;Echo;A
6;Foxtrot;A
7;Golf;A
1;Hotel;B
2;India;B
3;Juliet;B
1;Kilo;C
2;Lima;C
3;Mike;C
4;November;C
5;Oscar;C

我想生成以下输出文件:

ID;Name;Level;Number
1;Alpha;A;7
2;Bravo;A;7
3;Charlie;A;7
4;Delta;A;7
5;Echo;A;7
6;Foxtrot;A;7
7;Golf;A;7
1;Hotel;B;3
2;India;B;3
3;Juliet;B;3
1;Kilo;C;5
2;Lima;C;5
3;Mike;C;5
4;November;C;5
5;Oscar;C;5

我有以下代码片段,虽然它计算正确的组计数,但不会向 csv 输出任何内容:

Import-Csv '.\TestInput.csv' -Delimiter ';' | 
   Group-Object 'Level' | 
   Select-Object -Expand Count | 
   Export-Csv -NoTypeInformation '.\TestOutput.csv'

我错过了什么?

4

1 回答 1

1

打破数字计数,试试这个

$data = Import-Csv '.\TestInput.csv' -Delimiter ';'
$levelCount = $data | Group-Object -Property 'Level' -AsHashTable
$data | Add-Member -MemberType ScriptProperty -Name Number -Value {$levelCount[$this.Level].count} -PassThru | Export-Csv -NoTypeInformation '.\TestOutput.csv'
于 2020-06-29T10:29:28.060 回答