Проблема с разделением файла CSV
В настоящее время у меня есть файл CSV, который генерируется каждую неделю, в котором я использую его, чтобы сказать, на каких серверах установлено определенное программное обеспечение. Я хочу написать скрипт для автоматизации этого процесса, но я застреваю при попытке разбить файл.
В моем файле 8 строк документации, а реальные данные не начинаются до 9 строки. Далее каждая строка данных содержит 15 столбцов, на которые я хочу разделить $temp[0]
,..., $temp[14]
, Общая длина файла составляет около 3800 строк. Моя проблема, однако, в том, что мои данные содержат запятые, которые используются для форматирования дат, ячеек с несколькими элементами (например, "CE, _Linux, Windows") и т. Д. Итак, я сталкиваюсь с тем, что я могу ' т использовать $example.Split(",")
, поскольку он разделяет каждый элемент через запятую, когда я действительно хочу, чтобы он разделялся столбцом моего CSV-файла.
Есть идеи, как это сделать?
2 ответа
У меня была почти такая же проблема, у меня это сработало:
Import-CSV $Report -Delimiter ':' | Select-Object * | Export-CSV $Report2 -Encoding utf8 -Delimiter ':' -NoTypeInformation
$Quotes = get-content -path $Report2
$Quotes | foreach {$_ -replace "`"", ""} | Set-Content $Report2
Это анализирует строку и удаляет двойные кавычки. Надежда работает на вас!
Как упомянуто @vivek-kumar-singh, вы можете импортировать ваш csv в объект через Import-Csv
Import-Csv -Path <pathToFile> -Delimiter ','
После этого вы можете перебрать свой объект и адресовать определенные строки (например, $import[0]
) Для адресации определенного столбца вашего csv в Объекте просто сделайте что-то вроде $import.columnHeader[0]