Benutzer mit den meisten Antworten
CSV File modifizieren

Frage
-
Hallo Zusammen,
muss ein CSV Datei modifzieren. Habe (fast) alles schon erledigt aber an 2 Sachen scheitere ich grandios :(
Die Datei sieht so aus
Datum,Zeit,wert1,wert2,wert3
2015.04.27,10:00:00,a,b,c
Diese muss aber so aussehen
Datum,Zeit,wert1,wert2,wert3
27.04.15,10:00,a,b,cNochmal zusammengefasst
Datum, muss tag,monat,jahr(2stellig) und die Uhrzeit müssen die sekunden hinten weg, dies für jede Zeile. Vielleicht noch als Ergänzung, das Datum und die Uhrzeit ist IMMER so aufgebaut.
Kann sowas per Powershell erledigen ? Wenn ja wie.
Danke für alle Tips & tricks
Grüße
Ralf
Antworten
-
Hier mal ein Lösungsansatz:
PS > pushd $env:TEMP PS > Get-Content .\test1.csv Datum,Zeit,wert1,wert2,wert3 2015.04.27,10:00:00,a,b,c 2015.04.28,11:00:00,a,b,c PS > Import-Csv $env:TEMP\test1.csv | Select ` @{Label='Datum';Expression={if ($_.Datum -match '^(?<year>\d*)\.(?<month>\d*)\.(?<day>\d*)') {Get-Date -Year $matches.year -Month $matches.month -Day $matches.day -UFormat "%d.%m.%y"}}}, @{Label='Zeit';Expression={$_.Zeit -replace ':\d\d$',''}}, Wert1, Wert2, Wert3 | ConvertTo-Csv -NoTypeInformation | foreach {$_ -replace '"', ""} | Out-File $env:TEMP\test2.csv -Encoding ASCII -Force PS > Get-Content .\test2.csv Datum,Zeit,wert1,wert2,wert3 27.04.15,10:00,a,b,c 28.04.15,11:00,a,b,c
Gruß
Joachim
- Bearbeitet Joachim Meyer Montag, 27. April 2015 21:19
- Als Antwort markiert Ralf2015 Dienstag, 28. April 2015 19:34
Alle Antworten
-
Hier mal ein Lösungsansatz:
PS > pushd $env:TEMP PS > Get-Content .\test1.csv Datum,Zeit,wert1,wert2,wert3 2015.04.27,10:00:00,a,b,c 2015.04.28,11:00:00,a,b,c PS > Import-Csv $env:TEMP\test1.csv | Select ` @{Label='Datum';Expression={if ($_.Datum -match '^(?<year>\d*)\.(?<month>\d*)\.(?<day>\d*)') {Get-Date -Year $matches.year -Month $matches.month -Day $matches.day -UFormat "%d.%m.%y"}}}, @{Label='Zeit';Expression={$_.Zeit -replace ':\d\d$',''}}, Wert1, Wert2, Wert3 | ConvertTo-Csv -NoTypeInformation | foreach {$_ -replace '"', ""} | Out-File $env:TEMP\test2.csv -Encoding ASCII -Force PS > Get-Content .\test2.csv Datum,Zeit,wert1,wert2,wert3 27.04.15,10:00,a,b,c 28.04.15,11:00,a,b,c
Gruß
Joachim
- Bearbeitet Joachim Meyer Montag, 27. April 2015 21:19
- Als Antwort markiert Ralf2015 Dienstag, 28. April 2015 19:34