Обработка CSV с использованием PowerShell с разными столбцами в строке - PullRequest
0 голосов
/ 15 ноября 2018

У меня есть CSV-файл без строки пригодного для использования заголовка (первая строка - это информация о файле, то есть дата создания).

В файле CSV установлены типы записей, которые находятся в первом столбце.т. е. столбец 1 может быть PRA, ASA или POA.

В зависимости от значения столбца 1 будет определяться, что находится в остальных полях.Из этого файла мне нужно убрать все данные, которые мне не понадобятся для безопасности, перед тем, как файл будет отправлен третьей стороне.Поскольку у нас разные типы записей, я не могу сделать простой цикл и, например, заблокировать столбцы 3, 4 и 6.

Мой план состоял в том, чтобы построчно проходить через CSV, затем посмотрите на первый столбец.выводить каждый тип записи в отдельный файл, чтобы их можно было обрабатывать по отдельности.

Import-Csv -Delimiter ~ -Encoding UTF8 -Path tinysample.dat | Foreach-Object {
    foreach ($property in $_.PSObject.Properties) {
        if ($property.Name -eq 'HDR') {
            if ($($property.Value) -eq 'PRA' -OR $($property.Value) -eq 'POA') {
                Export-Csv -InputObject $_ -Append -Delimiter ~ -Encoding UTF8 -LiteralPath "$($property.Value).dat"

            }
        }
    }
}

В данный момент записи выводятся вместе со строкой заголовка, которая мне не нужна.Я хотел установить свой собственный заголовок в каждом соответствующем файле, который затем можно легко использовать, чтобы определить, какие столбцы следует скрыть.

Также некоторые записи обрезаются в новом CSV.

Я смог добиться этого с помощью bash, используя grep и awk, и надеялся, что смогу сделать то же самое с Powershell.

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