У меня есть 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.