CSV Манипуляция с PowerShell - PullRequest
       0

CSV Манипуляция с PowerShell

0 голосов
/ 04 апреля 2019

Я хочу заменить все содержимое столбца A в CSV с текущей датой MMddyyyy, используя команды PowerShell

За последние пару дней просмотрел множество примеров, но не могу найти правильный ответ, несколько новый для powershell, с опытом работы в Unix в течение 35 лет!

моими желаемыми результатами будет новый файл CSV с датой в 1-м столбце, за которым следуют все остальные столбцы из исходного CSV.

MMddyyyy, все остальные поля, от, оригинал, csv

1 Ответ

1 голос
/ 04 апреля 2019

Предполагается, что ваши данные находятся в файле your.csv, а их содержимое выглядит следующим образом:

ColA,ColB,ColC
somethingA,somethingB,SomethingC
somethingA,somethingB,SomethingC
somethingA,somethingB,SomethingC
somethingA,somethingB,SomethingC
somethingA,somethingB,SomethingC
somethingA,somethingB,SomethingC

Эффективный способ сделать это - следовать решению, опубликованному в Добавить столбец в CSV WindowsPowerShell .Ниже приведены подробные сведения о том методе, в котором вы хотите заменить первый столбец и сохранить оставшиеся столбцы в следующем порядке:

Import-Csv your.csv | 
  Select-Object -Property @{n="ColA";e={get-date -f MMddyyyy}},* -ExcludeProperty ColA |
    Export-Csv new.csv -NoTypeInformation

Менее эффективный альтернативный метод обрабатывает каждую строку и вносит соответствующие изменения.Это обновит исходную переменную $file новыми данными, но оставит исходный файл без изменений.new.csv - это выходной файл со всеми обновлениями.

$file =  Import-Csv your.csv

Foreach ($row in $file) {
   $row.ColA = get-date -f MMddyyyy
}

$file | Export-Csv new.csv -NotypeInformation

Теперь содержимое new.csv выглядит следующим образом:

"ColA","ColB","ColC"
"04042019","somethingB","SomethingC"
"04042019","somethingB","SomethingC"
"04042019","somethingB","SomethingC"
"04042019","somethingB","SomethingC"
"04042019","somethingB","SomethingC"
"04042019","somethingB","SomethingC"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...