#powershell #csv
#powershell #csv
Вопрос:
У меня есть следующий код, который удаляет все запятые в моем csv-файле, но есть проблема:
Я хочу удалить запятые только в столбце P, а остальные данные должны быть нетронутыми. В настоящее время он добавляет данные под данными csv.
$inform = Get-Content C:UsersbmdDesktopreport.csv
$inform.ToString()
$y=$inform -replace ',' -replace ''
$y | Out-file C:UsersbmdDesktopreport.csv -Append
Комментарии:
1. Использует ли ваш CSV-файл запятую в качестве разделителя столбцов? Есть ли в вашем csv строка заголовка?
2. Какой тип информации содержится в столбце P? Вам было бы полезно предоставить это. Я бы использовал import-csv, а не get-content, если csv не разделен запятыми.
3.
-Append
добавляет выходные данные в конец существующего файла. Я думаю, что вы ищете способ сначала манипулировать содержимым CSV, а затем записывать это (все) содержимое в тот же файл?4. Привет, да, в моем csv есть заголовки.. В основном столбцы от A до O в моем csv-файле представляют собой отдельные столбцы, и данные структурированы.. это только данные в столбце P, разделенные запятыми с кавычками, которые я хотел бы заменить запятой на ничто. Общая цель — просто заменить запятую в столбце p на ничто и сохранить csv как есть..
Ответ №1:
Обычно использовать Import-Csv
и Export-Csv
будет проще, чем пытаться манипулировать строками в CSV. Не имея образца файла CSV, мы можем только делать предположения. Предполагая, что он содержит true и квалифицирован как необходимые CSV-данные, вы можете попробовать следующее:
$csv = Import-Csv C:UsersbmdDesktopreport.csv
foreach ($row in $csv) {
$row.UNSTRUCTURED_VARS = $row.UNSTRUCTURED_VARS -replace ','
}
$csv | Export-Csv C:UsersbmdDesktopreport.csv -NoType
Обратите внимание, что если вы используете PowerShell Core или PowerShell 7, вы можете просто использовать Export-Csv
with -UseQuotes AsNeeded
, и будут указаны только обязательные поля.
Комментарии:
1. Привет @AdminOfThingsI, не могли бы вы проверить, правильный ли приведенный ниже код, поскольку он ничего не делает.
2. Затем вы должны опубликовать образец вашего CSV-файла, чтобы нам не приходилось гадать. Вам также необходимо удалить
-Header $headers
, если в вашем файле есть заголовки.3. Вы можете загрузить файл здесь. Colum P Мне не нужны запятые: esquirebank.box.com/s/y187a3oqz4u0fhpz3mq1sdit02pepusk
4. Я внес новое редактирование, в котором будут использоваться исключительно
*-Csv
команды.