Допустим, у вас есть файл CSV с именем sample.csv
, который выглядит следующим образом:
1,lori renier,shark
2,marc cuban,shark
3,adam,tuna
4,Olaf,Chubb
Я бы загрузил данные с чем-то вроде ...
$contents = Import-CSV -Path .\sample.csv -Delimiter ',' -Header @('id','name','type')
Затем я перебирал содержимое, делая все необходимое для очистки ...
foreach ($record in $contents) {
if ($record.id.length -eq '') { $record.id = ... }
if ($record.name -eq '') { $record.name = ... }
if ($record.type -eq '') { $record.type = ... }
}
Затем я экспортировал результаты очистки ...
Export-CSV -Path .\clean.csv -Delimiter ',' -Encoding 'ASCII' -NoTypeInformation -Append
.NET методы / объекты обычно быстрее.Таким образом, использование [System.IO.File]::ReadLines("...")
, вероятно, будет работать немного лучше, но люди Powershell, как правило, смещают доступные командлеты, прежде чем переходить к .NET-коду.