Проблема с разделением файла 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]

Другие вопросы по тегам