Interaktiver konsolenbasierter CSV-Editor


12

Obwohl Tabellenkalkulationsanwendungen zum Bearbeiten von CSV-Dateien auf der Konsole früher eine der frühesten Killeranwendungen für PCs waren, werden nur noch wenige und noch weniger Dokumentationen aktiv gepflegt.

Nachdem ich eine umfangreiche Suche im Web, auf den Manpages und im Quellcode durchgeführt hatte, kam ich zu den folgenden drei Anwendungen, die alle grundlegende Nachteile haben:

  • sc: Abkürzung für Tabellenkalkulator; Nettes Tool mit vi-Tastenkombinationen, aber es setzt beim Exportieren in ein durch Trennzeichen getrenntes Format keine Zeichenfolgen, die das Trennzeichen enthalten, in Anführungszeichen und kann CSV-Dateien nicht korrekt importieren, dh alle Zahlen werden als Zeichenfolgen interpretiert
  • GNU oleo: scheint seit 2001 nicht mehr aktiv gewartet zu werden und es gibt daher keine Pakete für größere Linux-Distributionen
  • Teekanne: bietet Pakete für verschiedene Betriebssysteme an, verwendet jedoch beispielsweise eine kontraintuitive Benennung für Zellen (Zahlen für Zeile und Spalte, dh 11 scheint Zeile 1, Spalte 1 zu sein) und überflüssigen Code für die FLTK-GUI

Verschiedene Emacs-Modi zitieren auch keine Zeichenfolgen, die das Trennzeichen enthalten, oder erfordern viel mehr Eingabe, um das Gerüst einer Tabelle zu betreten.

Daher wäre ich sehr dankbar, wenn ich einen dieser Nachteile oder Hinweise auf einen anderen konsolenbasierten CSV-Editor überwinden würde. Es müssen eigentlich keine Berechnungen durchgeführt werden, nur Zellen oder Spalten und Zeilen.


Antworten:


11

Von einem CSV-Editor wird im Allgemeinen erwartet, dass er Zahlen als solche erkennt, Zeichenfolgen nur bei Bedarf in Anführungszeichen setzt, Trennzeichen in Zeichenfolgen in Anführungszeichen zulässt und keine leeren Zellen reduziert. Also das auf dem Bildschirm

1                      2          3
col-one                           col,three
                       col two
This is a long string. 1.23456789 3.14

sollte damit in der Datei korrelieren

1,2,3
col-one,,"col,three"
,"col two",
"This is a long string.",1.23456789,3.14

Oleo wurde seit mehreren Jahren nicht mehr gewartet. Ich habe ein altes Paket auf einem neueren Debian-System installiert und fand es umständlich und sehr fehlerhaft. Operationen erfordern mehr als die übliche Anzahl von Tastenanschlägen. Alle Zeichenfolgen müssen in Anführungszeichen gesetzt werden und müssen manuell erstellt werden. Der CSV-Importfilter kann keine Kommas innerhalb von Zeichenfolgen verarbeiten. Zahlen mit langer Genauigkeit werden nicht in ihrer ursprünglichen Form beibehalten (z. B. 1,23456789 wird 1,234567889999999). Der Prozess wird manchmal außer Kontrolle geraten, sodass er nicht über die Befehlszeile beendet werden kann.

Es scheint, dass MacroCALC, Teapot und SC die einzigen CLI-Tabellen sind, die noch verwaltet werden.

MacroCALC kann CSV-Dateien nicht sauber importieren oder exportieren.

Teekanne ist etwas ungewöhnlich, aber es ist sehr einfach zu bedienen und das Handbuch ist schnell zu lesen. Der Import / Export von CSV ist einfach. Es hat zwei große Macken. Erstens werden beim automatischen Zitieren von Zeichenfolgen immer alle Zeichenfolgen zitiert. Zweitens werden alle Dezimalzahlen auf die Standardgenauigkeit abgeschnitten / erweitert. Die FLTK-Schnittstelle ist betriebsbereit, aber fehlerhaft.

SC ist schnell und stabil. Es funktioniert ähnlich wie vi und ist ungefähr so ​​anfängerfreundlich. Für die Konvertierung zwischen SC-Format und CSV sind externe Programme erforderlich. Das pscTool (nur CSV -> SC) wird mit SC installiert und funktioniert folgendermaßen:

cat file.csv | psc -k -d, | sc

Speichern Sie die Datei nach dem Bearbeiten mit dem Befehl Put und verwenden Sie dann das ssconvertmit Gnumeric gelieferte Dienstprogramm (nur SC -> CSV):

ssconvert file.sc file.csv

Ich habe versucht, eine Vielzahl von Dingen zu umgehen psc- ssconvertund der Prozess scheint stabil zu sein. Zahlen und Zeichenfolgen werden korrekt behandelt.

Eine alternative Methode zum Bearbeiten von CSV-Dateien wäre die Verwendung eines Texteditors mit einem geeigneten Plugin. Sowohl Emacs als auch Vim haben sie, obwohl die Vim-Version schneller ist und mehr Funktionen hat. Diese bieten Hervorhebungen, Spaltenausrichtung und Blockoperationen. Ich fand beide sehr langsam und fehlerhaft.


Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.