Das CSV-Format speichert Tabellen in einer simplen Textdatei. In jeder Zeile liegt genau ein Datensatz, die Feldinhalte trennt jeweils ein Komma (Abbildung 1). Genau diese Konvention gab dem Format auch den Namen "Comma-separated Values" (CSV). Solche CSV-Dateien bieten sich vor allem für den Informationsaustausch zwischen verschiedenen Programmen an, etwa wenn Sie die Adressbuch-Anwendung wechseln oder alle Kontaktdaten auf ein anderes Gerät übernehmen möchten. Bei der Gelegenheit könnten Sie auch gleich noch ein paar Karteileichen entfernen und veraltete Telefonnummern korrigieren. Dazu reicht prinzipiell schon ein simpler Texteditor.

Abbildung 1: Eine typische CSV-Datei: Jede Zeile enthält eine Adresse, deren Komponenten jeweils ein Komma abtrennt. In der ersten Zeile stehen die Spaltenbeschriftungen.

Bei größeren Datenbeständen "verläuft" man sich jedoch schon einmal und zerstört versehentlich die gelegentlich doch etwas kryptischen Inhalte. Es genügt ein fehlendes Komma, und schon wird aus dem Herrn Maier ein Herr Markgrafenstr. mit der Faxnummer (0555) 65 43 21, unter jedoch eigentlich ein Handy wartet. Um das zu vermeiden, könnten Sie die CSV-Datei wieder in eine Tabellenkalkulation importieren, dort die Änderungen vornehmen und alles wieder ins CSV-Format exportieren. Einfacher und schneller geht es jedoch mit dem auf CSV-Dateien spezialisierten Record Editor [1].

Kaffeekränzchen: Record Editor installieren

Um den in Java geschriebenen Record Editor in Betrieb zu nehmen, benötigen Sie eine Java-Laufzeitumgebung (JRE), welche die meisten Distributionen aber von Haus aus mitbringen. Ob das auch das von Ihnen eingesetzte Derivat tut, prüfen Sie auf der Kommandozeile mithilfe des Kommandos java -version nach. Es sollte eine Meldung ähnlich der folgenden ausspucken:

$ java -version
java version "1.6.0_20"
OpenJDK Runtime Environment (IcedTea6 1.9.4)
OpenJDK Server VM (build 17.0-b16, mixed mode)

Andernfalls gilt es vorab per Paketmanager eine aktuelle JRE nachzuinstallieren. Ist Java an Bord, holen Sie den Record Editor aus dem Internet – allerdings nicht von der leicht angestaubten Homepage, wo die Links unter Download Versions derzeit ins Leere führen. Die aktuelle Version versteckt sich stattdessen auf einer Sourceforge-Seite [2]. Wechseln Sie dort in das Verzeichnis mit der höchsten Versionsnummer – zu Redaktionsschluss aktuell war Record Editor 0.69.1, den Sie auch auf der Heft-DVD finden. Von den angebotenen Archiven benötigen Sie als Linux-Anwender die Datei RecordEdit_Installer_for_HSQLDB_Version.jar.zip, die Sie nach dem Herunterladen auf die Festplatte entpacken. Im dabei entstandenen Verzeichnis HsqlDB rufen Sie in einem Terminal-Fenster folgenden Befehl auf:

$ java -jar RecordEdit_Installer_for_HSQLDB_0.69.1.jar

Es erscheint jetzt ein kleiner Installationsassistent, in dem Sie auf Next klicken, dann die GPLv3-Lizenz akzeptieren und wieder Next bemühen. Das vorgeschlagene Installationsverzeichnis können Sie für gewöhnlich einfach übernehmen, womit Record Editor in Ihrem Home-Verzeichnis landet. Via Next und OK startet die eigentliche Einrichtung. Nach einem weiteren Klick auf Next bietet der Installer an, Record Editor ins Startmenü zu integrieren und passende Symbole auf dem Desktop anzulegen. Zumindest eine der beiden Möglichkeiten sollten Sie annehmen, da Record Editor aus mehreren Komponenten besteht und sich diese so später einfacher starten lassen. Drei Mal Next und einmal Done schließen die Installation ab. Melden Sie sich jetzt einmal ab und wieder an, was das Startmenü auf den aktuellen Stand bringt.

Dosenöffner

Record Editor bringt eine eigene kleine Datenbank mit, die während des Betriebs im Hintergrund laufen muss. Um sie zu starten, wählen Sie aus dem Startmenü den Punkt RecordEditor - Start Database Server. Alternativ wechseln Sie in einem Terminal ins Record-Editor-Verzeichnis und rufen dort im Ordner lib das Skript StartServer.sh auf. Sobald die Datenbank im Hintergrund läuft, starten Sie Record Editor selbst. Er versteckt sich im Startmenü hinter dem Full Editor. Wollen Sie ihn in einem Terminal aktivieren, wechseln Sie dazu in den Ordner lib des Record-Editor-Verzeichnisses und rufen dort das Skript runFullEditor.sh auf.

Es erscheint das Hauptfenster aus Abbildung 2. Die darin enthaltenen Fenster können Sie unabhängig voneinander verkleinern, vergrößern und schließen, sie bleiben aber grundsätzlich immer innerhalb des Hauptfensters. Im Programm Log gibt Record Editor Status- und Fehlermeldungen aus. Um eine CSV-Datei zu öffnen, wenden Sie sich dem Unterfenster Open File zu. Via Choose File wählen Sie zunächst die entsprechende Datei auf der Festplatte und stellen dann unter System den Punkt CSV ein. In der Ausklappliste Record Layout möchte Record Editor jetzt noch wissen, welchen Aufbau die Datei aufweist.

Abbildung 2: Das Hauptfenster von Record Editor nach dem ersten Start.

Bauhaus

Sofern alle Daten per Komma getrennt sind und in der ersten Zeile der CSV-Datei die Spaltenbeschriftungen stecken (wie in Abbildung 1 Name, Straße, Ort und so weiter), ist der Punkt Comma Delimited, names on the first line genau der Richtige. Verwendet die Datei anstelle der Kommata Tabulatoren, wählen Sie stattdessen Tab Delimited, names on the first line. Weicht sie hingegen von diesen beiden Standardmöglichkeiten ab, stellen Sie Generic CSV - enter details ein. In diesem Fall müssen Sie gleich noch genauere Angaben zum Aufbau der Datei machen (siehe Kasten "(Nicht-)Standard CSV").

TIPP

Öffnen Sie im Zweifelsfall die CSV-Datei mit einem Texteditor, um die Existenz einer Header-Zeile sowie die verwendeten Trennzeichen herauszufinden.

(Nicht-)Standard CSV

Bei CSV handelt es sich mehr um eine schlechte Angewohnheit als um einen Standard, wenn auch RFC 4180 [4] ein mögliches Format beschreibt. Die Erfassung von kommaseparierten Daten stammt noch aus den Zeiten Fortran-befeuerter Großrechner: Schon 1967 unterstützte beispielsweise IBMs OS/360-Mainframe-Betriebssystem CSV. Ein klassisches Beispiel einer CSV-Datei liefert übrigens auch Linux in Form der /etc/passwd mit, in der Doppelpunkte die Werte separieren.

Die in CSV-Dateien zu verwendende Zeichenkodierung ist nicht normiert, jedoch gilt 7-Bit-ASCII als der kleinste gemeinsame Nenner. Der erste Datensatz kann ein Kopfdatensatz sein, der die Spaltennamen definiert. Das zum Trennen der einzelnen Datensätze genutzte Zeichen entspricht dem Zeilenumbruch-Zeichen des Betriebssystems – bei Windows sind es also tatsächlich zwei Zeichen (CR/LF). Als Zeichen zur Trennung von Datenfeldern/Spalten schlägt schon der Formatname das Komma vor, es können dazu jedoch auch Semikolons, Doppelpunkte, Tabulatoren oder Leerzeichen zum Einsatz kommen. Daneben gibt es auch noch eine Spielart mit fester Feldbreite. Um den Trenner auch innerhalb der Daten nutzen zu können (etwa Kommas in Dezimalwerten), gibt es ein Feldbegrenzerzeichen, normalerweise das Anführungszeichen. Kommt der Feldbegrenzer selbst in den Daten vor, muss er als Begrenzer verdoppelt werden.

Nach einem Klick auf Edit erscheint die Tabelle mit allen Datensätzen wie in Abbildung 3. Sofern Sie Generic CSV gewählt haben, präsentiert Ihnen Record Editor zuvor noch das Fenster aus Abbildung 4. Hier stellen Sie zunächst unter Field Separator ein, welches Zeichen die einzelnen Daten in einer Zeile trennt – oft dient dazu statt eines Kommas oder Tabulators ein Strichpunkt. In der Ausklappliste bietet Record Editor die verbreitetsten Trennzeichen an. Sie dürfen aber auch ein beliebiges eigenes in das Eingabefeld rechts daneben eintippen. Ob Sie mit Ihrer Wahl richtig liegen, können Sie im unteren Bereich anhand der eingeblendeten Ergebnisvorschau entscheiden.

Abbildung 3: Das im Record Editor geöffnete Adressbuch aus Abbildung 1.
Abbildung 4: Bei CSV-Dateien, die vom Standard abweichen, müssen Sie den Aufbau selbst vorgeben. Die hier getroffenen Einstellungen führen zur Tabelle im unteren Bereich.

Tabellenkalkulationen verpacken die Inhalte einer Zelle gerne noch in Anführungszeichen. Sofern dies bei Ihrer CSV-Datei der Fall ist, wählen Sie unter Quote Character das dabei verwendete Anführungszeichen. Enthält die erste Zeile wie in Abbildung 1 die Bezeichnungen der Tabellenspalten beziehungsweise Datenfelder, haken Sie noch Fields on First Line ab. Sind alle Angaben korrekt, öffnet ein Klick auf Go die Tabelle in der endgültigen Ansicht aus Abbildung 4.

Über die Symbole rechts oben manipulieren Sie die Tabelle. Das schwarze X ganz rechts löscht beispielsweise den oder die gerade markierten Zeilen, das weiße Blatt legt einen neuen Datensatz an. Mehrere Zeilen wählen Sie bei gedrückter [Strg]-Taste aus. Wenn Sie mit dem Zeiger zwischen die Tabellenspalten fahren und dann die linke Maustaste gedrückt halten, können Sie mit der Maus die Spaltenbreite verändern.

Um ein Zelle zu bearbeiten, klicken Sie sie doppelt darauf und korrigieren den Inhalt. Erscheint Ihnen das zu fummelig, klicken Sie stattdessen auf das leere graue Rechteck ganz links in der Zeile des Datensatzes. Es öffnet sich dann das Fenster aus Abbildung 5. Es zeigt nur die Zeile beziehungsweise den darin gespeicherten Datensatz an. Auch hier genügt ein Doppelklick in ein Feld, um es zu ändern. Mit den großen Pfeilen am unteren Rand blättern Sie zwischen den einzelnen Datensätzen respektive Tabellenzeilen hin- und her.

Abbildung 5: In dieser alternativen Ansicht zeigt Record Editor immer nur einen Datensatz beziehungsweise eine Tabellenzeile an.

Geordnetes Versteckspiel

Um bei größeren Tabellen den Überblick zu behalten, kann Record Editor alle uninteressanten Daten vorübergehend ausblenden. Dazu wählen Sie aus dem Hauptmenü Data | Filter, woraufhin die Maske aus Abbildung 6 erscheint. In der Liste in der Mitte haken Sie alle Spalten an, die Record Editor anzeigen soll. Weitere Einschränkungen legen Sie mit den Feldern direkt darunter fest. Jede Zeile gibt dort genau ein Filterkriterium vor. Unter Field wählen Sie zunächst die betroffene Spalte, der Operator rechts daneben legt fest, wie Record Editor auf den unter Value eingetippten Wert achten soll.

Abbildung 6: Mit diesen Filtereinstellungen erscheinen gleich in der Tabelle alle Zeilen, deren Name Maier lautet.

Um beispielsweise im Adressbuch aus Abbildung 4 nur noch alle Maier zu sehen, darf Record Editor nur noch alle Zeilen einblenden, die in der Spalte Name den Wert Maier enthalten. Folglich setzen Sie wie in Abbildung 6 in der ersten Zeile die Ausklappliste unter Field auf Name, den Operator rechts daneben auf Contains (enthält) und tippen unter Value den Maier ein. Über die nachfolgenden Zeilen könnten Sie jetzt noch weitere Bedingungen vorgeben. Ein Klick auf Filter öffnet die reduzierte Tabelle schließlich in einem neuen Fenster. Die Filterregeln bleiben dabei weiterhin geöffnet, eine Änderung und ein weiterer Klick auf Filter öffnen ein neues Tabellenfenster. Auf diese Weise erhalten Sie schnell unterschiedliche Ansichten auf Ihren Datenbestand.

Ergänzend kann Record Editor die Datensätze umordnen und so etwa die Adressdaten alphabetisch auf- oder absteigend sortieren. Die Funktion versteckt sich im Hauptmenü hinter Data | Sort. Es erscheint dann das Fenster aus Abbildung 7. Unter Field wählen Sie alle Spalten, nach denen Record Editor die Zeilen sortieren soll. Stellen Sie im Fall des Adressbuchs beispielsweise in der obersten Ausklappliste die Straße und direkt darunter den Vornamen ein, so sortiert Record Editor alle Datensätze zunächst nach den Straßennamen und bei gleichen Straßennamen untereinander noch einmal nach dem Vornamen. Ob das jeweils alphabetisch aufsteigend geschieht, zeigt ein Haken im Kästchen rechts daneben. Fehlt er, sortiert Record Editor die Zeilen absteigend. Unter Use schränken Sie bei Bedarf die Sortierung auf alle gerade markierten Datensätze ein. Ein Klick auf Sort schafft schließlich die gewünschte Ordnung.

Abbildung 7: Hier sortiert Record Editor alle Tabellenzeilen aufsteigend nach den Straßennamen und alle Straßen mit dem gleichen Namen noch einmal nach dem Vornamen.

Haben Sie die Tabelle nach Ihren Wünschen modifiziert, speichern Sie das Ergebnis via File | Save oder unter einem neuen Namen per File | Save as. In letztem Fall haben Sie sogar die Möglichkeit, die Tabelle als HTML- oder XML-Dokument zu exportieren. Möchten Sie nur die gerade markierten Tabellenzeilen speichern, achten Sie darauf, unter What to Save den Punkt Selected Records auszuwählen.

Fazit

Wer sich erst einmal an das Bedienkonzept der Benutzeroberfläche gewöhnt hat, editiert mit Record Editor schneller und komfortabler CSV-Dateien als mit jedem Texteditor – der obendrein die Daten weder sortieren noch filtern kann.

Neben CSV-Dateien frisst das kleine Werkzeug auch andere Textdateien mit tabellarischen Inhalten. Das dürfte insbesondere Programmierer freuen, die beispielsweise so Log-Dateien bequem einlesen und auswerten. Um dem Record Editor solche exotischen Formate beizubringen, muss man sich allerdings mit dem mitgelieferten Layout Editor auseinandersetzen. In seine Bedienung führt die etwas karge, für den Einstieg aber ausreichende Dokumentation ein. Sie steckt im Record Editor-Verzeichnis in der Datei readme.html.

Bei weiteren Fragen und Problemen empfiehlt sich das Forum auf Sourceforge.net [3]. Auch wenn dort nur gemächlich neue Nachrichten eintrudeln, antwortet der Programmautor Bruce Martin relativ zügig. 

LinuxCommunity kaufen

Einzelne Ausgabe
 
Abonnements
 

Ähnliche Artikel

Kommentare