PowerShell: импорт CSV-файла, подсчет размеров групп и вывод в исходный файл, добавление нового столбца со счетчиками
У меня есть тестовый входной 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'
Что мне не хватает?
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'