powershell - разделить csv на несколько csv по столбцу - PullRequest
0 голосов
/ 28 мая 2020

У меня есть такой .csv:

enter image description here

но, конечно, гораздо больше строк ... (извините, я добавил это как картинку, потому что текст был не может быть отформатирован правильно)

и я хотел бы иметь 4 файла .csv, например, которые содержат каждый столбец отдельно, поэтому в x.csv у меня будут данные только из первого столбца. в y.csv у меня будут только данные из второго столбца (они разделены знаком ";"

пока у меня есть этот код, но я не могу даже l oop по столбцам (цикл по строкам работает ..)

$dataaa = Import-Csv ".\input.csv" -Delimiter ";" | Group ID | %{
    $ID=".\out.csv" -f $_.Name
    $_.Group | export-csv "$CurDir\$ID" -NoType
}

$a=0
echo "$a"

$Results = foreach( $Column in $dataaa ){
$a=$a+1
echo "$a" #echo number of column
#select first column and export into x.csv - have NO idea how to
}

echo "$a"

спасибо за помощь

Ответы [ 2 ]

1 голос
/ 28 мая 2020

Вы можете сделать следующее, что позволяет использовать любые возможные имена столбцов:

$csv = Import-Csv -Path input.csv -Delimiter ';'
$properties = (Get-Member -InputObject $csv[0] -MemberType Properties).Name
foreach ($property in $properties) {
    $csv | Select-Object @{n=$property;e={$_.$property}} |
        Export-Csv -LiteralPath "$property.csv" -NoTypeInformation -Delimiter ';'
}

Select-Object здесь потребуется вычисляемое свойство, потому что ваши имена свойств имеют подстановочный знак символов. Использование переключателя -LiteralPath может быть необходимо в некоторых командах из-за подстановочных знаков.

0 голосов
/ 28 мая 2020

Это должно быть прямо:

1.) Импортируйте данные с import-csv в переменную, например, $ tmp (не забудьте правильно установить разделитель

2.) Выберите недвижимость с $ tmp | Select-Object -Property Position x ...

3.) Экспорт выбранных данных с помощью экспорта csv (и, возможно, параметра notypeinformation)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...