Проблема с разделением файла CSV - PullRequest
0 голосов
/ 11 июня 2018

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

В моем файле 8 строк документации, а реальные данные не начинаются до 9 строки.Далее, каждая строка данных имеет 15 столбцов, которые я хочу разделить на $temp[0], ..., $temp[14].Общая длина файла составляет около 3800 строк.Моя проблема, однако, в том, что мои данные содержат запятые, которые используются для форматирования дат, ячеек с несколькими элементами (например, «CE, _Linux, Windows») и т. Д. Итак, я сталкиваюсь с тем, что могуЯ не могу использовать $example.Split(","), поскольку он разделяет каждый элемент запятой, когда я действительно хочу, чтобы он был разделен столбцом моего CSV-файла.

Есть идеи, как это сделать?

Ответы [ 2 ]

0 голосов
/ 11 июня 2018

У меня была почти такая же проблема, у меня это сработало:

Import-CSV $Report -Delimiter ':'   | Select-Object * |  Export-CSV $Report2 -Encoding utf8 -Delimiter ':' -NoTypeInformation 
$Quotes = get-content -path $Report2
$Quotes | foreach {$_ -replace "`"", ""} | Set-Content $Report2

Это анализирует строку и удаляет двойные кавычки.Надежда работает на тебя!

0 голосов
/ 11 июня 2018

Как упомянуто @ vivek-kumar-singh, вы можете импортировать свой CSV в объект через Import-Csv

Import-Csv -Path <pathToFile> -Delimiter ','

После этого вы можете повторить ввод черезваш объект и адрес определенных строк (например, $import[0]). Для адресации определенного столбца вашего csv в объекте просто сделайте что-то вроде $import.columnHeader[0]

...