dergringo73
Goto Top

CSV Datei komplett umdrehen

Kann mir jemand sagen wie ich am einfachsten eine komplette csv Datei umdrehen kann?? Die aktuell letzte Zeile soll also die erste Zeile sein usw.

Beispiel:
Inhalt 1
Inhalt 2
Inhalt 3
Inhalt 4

Neu:
Inhalt 4
Inhalt 3
Inhalt 2
Inhalt 1

Die CSV hat leider immer unterschiedlich viele Zeilen.

Content-Key: 1502616992

Url: https://administrator.de/contentid/1502616992

Printed on: April 27, 2024 at 05:04 o'clock

Mitglied: 149569
Solution 149569 Nov 13, 2021 updated at 15:08:44 (UTC)
Goto Top
Powershell
https://tio.run/##K8gvTy0qzkjNyfn/PzqxqCixMlYlUcFWwUGdyyWxpDTX2jc1Lz2Vy9 ...
[array]$csv = Import-Csv "d:\datei.csv" -delimiter ";"  
[array]::Reverse($csv)
$csv | Export-CSV "d:\datei_neu.csv" -delimiter ";" -NoType -Encoding UTF8  

Wenn's da natürlich eine Spalte gibt mit der sich passend sortieren lässt, geht's natürlich auch mittels sort-object
Member: em-pie
em-pie Nov 13, 2021 updated at 15:06:36 (UTC)
Goto Top
Moin,

ginge Beispielsweise so:

CSV-Datei myFile.csv
13;Max;Müller;NRW
09;Lisa;Fuchs;BY
87;Lena;Schlau;MV
15;Karl;Doof;RPL

Script (Powershell)
$content = Get-Content 'C:\Tmp\myFile.csv'  
[array]::Reverse($content)
$content | Out-File -FilePath 'C:\_Tmp\myFile_Reverse.csv' -Append  

Ergebnis myFile_Reverse.csv
15;Karl;Doof;RPL
87;Lena;Schlau;MV
09;Lisa;Fuchs;BY
13;Max;Müller;NRW

Umlaute "zicken" noch herum, obwohl Quelle und Ziel im UTF-8 sind...
Das müsstest du mal weiter eruieren.

Vermutlich kennen die Hardcore-Powersheller hier aber noch andere Methoden face-smile


€dit:
Natürlich. Import-CSV und Export-CSV sind die bessere Wahl. Danke @149569

Gruß
em-pie
Member: dergringo73
dergringo73 Nov 13, 2021 at 15:44:47 (UTC)
Goto Top
Ich danke euch beiden für die Hilfe es klappt super. mit dem Ansatz über get-Content ist die CSV im Anschluss deutlich größer. Mit
[array]$csv = Import-Csv "d:\datei.csv" -delimiter ";"  
[array]::Reverse($csv)
$csv | Export-CSV "d:\datei_neu.csv" -delimiter ";" -NoType -Encoding UTF8  
klappt es perfekt