This page (revision-2) was last changed on 29-Oct-2013 09:48 by ThomasBayen 

This page was created on 29-Oct-2013 09:45 by ThomasBayen

Only authorized users are allowed to rename pages.

Only authorized users are allowed to delete pages.

Page revision history

Version Date Modified Size Author Changes ... Change note
2 29-Oct-2013 09:48 1 KB ThomasBayen to previous Splitten von CSV-Dateien
1 29-Oct-2013 09:45 1 KB ThomasBayen to last Splitten von CSV-Dateien

Page References

Incoming links Outgoing links

Version management

Difference between version and

= Tips & Tricks zum Umgang mit CSV-Dateien =

== Split mit Headern ==

Hin und wieder möchte ich eine CSV-Datei in mehrere Teile aufteilen, (z.B. um sie in kleineren Paketen bearbeiten zu können). Dazu gibt es eine Programm:

* http://www.scaled-solutions.com/blog/open-source-csv-file-splitter

Das brauchen wir aber nicht, weil wir ja LUGer und damit Shell-Magier sind. :-)

Dateien aufteilen kann man in der Shell grundsätzlich mit dem '''split'''-Kommando. Die Kunst ist nun, die Headerzeilen aus der ursprünglichen Datei in die gesplitteten wieder einzufügen.

Ich mache das so:

 ( tail -n+2 datei.csv | split -l 1002>> -d - gabe ); for file in gabe* ; do ( ( head -n 1 datei.csv ; cat $file ) > <<aus${file}.csvaus${file} ); done; rm gabe* ; ls ausgabe*

Da dieser
<<EinzeilerEinzeilen die nackten Unix-Tools benutzt, arbeitet er übrigens mit "Unix-Zeilen" und nicht mit "CSV-Zeilen", d.h. wenn eine CSV-Zeile Zeilenvorschübe enthält, gibts ggf. Ärger. Wer den vermeiden will, kann sich ja mal das Debian-Paket "csvtool" ansehen. Das kann man hier bestimmt zur Verbesserung einbauen.