Как удалить двойные кавычки на конкретный столбец из файла CSV с помощью скрипта Powershell

"ID","Full Name","Age"

"1","Jone Micale","25"

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

Я пробовал разные способы, но я не хочу создавать из него новый файл. Я просто хочу обновить файл с изменениями, используя PowerShell v1.

1 ответ

Решение

Export-Csv всегда ставит все поля в двойные кавычки, поэтому вы должны удалить нежелательные кавычки трудным способом. Нечто подобное может работать:

$csv = 'C:\path\to\your.csv'
(Get-Content $csv) -replace '^"(.*?)",(.*?),"(.*?)"$', '$1,$2,$3' |
    Set-Content $csv

Распределение регулярных выражений:

  • ^ а также $ сопоставить начало и конец строки соответственно (Get-Content возвращает массив со строками из файла).
  • "(.*?)" сопоставляет текст между двумя двойными кавычками и фиксирует совпадение (без двойных кавычек) в группе.
  • ,(.*?), сопоставляет текст между двумя запятыми и фиксирует совпадение (включая двойные кавычки) в группе.
  • $1,$2,$3 заменяет совпадающую строку на первую, вторую и третью группы, разделенные запятыми из совпадения.
Другие вопросы по тегам