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:
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 100 -d - gabe ); for file in gabe* ; do ( ( head -n 1 datei.csv ; cat $file ) > aus${file}.csv ); done; rm gabe* ; ls ausgabe*
Da dieser Einzeiler 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.
Add new attachment
Only authorized users are allowed to upload new attachments.