Éditeur CSV basé sur une console interactive

12

Bien que les applications de feuille de calcul pour l'édition de fichiers CSV sur la console aient été l'une des premières applications tueuses pour les ordinateurs personnels, seules quelques-unes d'entre elles et encore moins de documentation à leur sujet sont toujours activement gérées.

Après avoir effectué des recherches approfondies sur le Web, les pages de manuel et le code source, je me suis retrouvé avec les trois applications suivantes qui présentent toutes des inconvénients fondamentaux:

  • sc: abréviation. pour calculatrice de feuille de calcul; bel outil avec les raccourcis clavier vi, mais il ne met pas de chaînes contenant le délimiteur entre guillemets lors de l'exportation au format séparé par délimiteur et ne peut pas importer correctement les fichiers csv, c'est-à-dire que tous les nombres sont interprétés comme des chaînes
  • GNU oleo: ne semble plus être maintenu activement depuis 2001 et il n'y a donc pas de paquets pour les principales distributions linux
  • théière: propose des packages pour différents systèmes d'exploitation, mais utilise par exemple une dénomination contre-intuitive pour les cellules (les nombres pour la ligne et la colonne, c'est-à-dire que 11 semble être destiné à être la ligne 1, la colonne 1) et un code superflu pour l'interface graphique FLTK

Divers modes Emacs ne citent pas non plus les chaînes contenant bien le délimiteur ou nécessitent beaucoup plus de frappe pour entrer dans l'échafaudage d'une table.

Par conséquent, je serais très reconnaissant d'avoir surmonté l'un de ces inconvénients ou des conseils vers un autre éditeur CSV basé sur une console. En fait, il n'a pas besoin de faire de calculs en éditant simplement des cellules ou des colonnes et des lignes.

Infirmière Pingouin
la source
stackoverflow.com/questions/1875305/command-line-csv-viewer
Ciro Santilli 法轮功 病毒 审查 六四 事件 法轮功

Réponses:

11

Un éditeur CSV est généralement censé reconnaître les nombres en tant que tels, ne citer les chaînes qu'en cas de besoin, autoriser les délimiteurs dans les chaînes entre guillemets et ne pas réduire les cellules vides. Donc, ceci à l'écran

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

devrait correspondre à cela dans le fichier

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

Oleo n'a pas été entretenu depuis plusieurs années. J'ai installé un ancien paquet sur un système Debian récent et l'ai trouvé maladroit et très bogué. Les opérations prennent plus que le nombre habituel de frappes. Toutes les chaînes doivent être citées et vous devez le faire manuellement. Le filtre d'importation CSV ne peut pas gérer les virgules dans les chaînes. Les nombres à longue précision ne sont pas conservés dans leur forme d'origine (par exemple, 1.23456789 devient 1.234567889999999). Le processus devient parfois incontrôlable de sorte qu'il ne peut pas être tué depuis la ligne de commande.

Il semble que MacroCALC, Teapot et SC sont les seules feuilles de calcul CLI toujours en cours de maintenance.

MacroCALC ne peut pas importer ou exporter proprement des fichiers CSV.

La théière est un peu inhabituelle, mais elle est très facile à utiliser et le manuel est une lecture rapide. L'import / export de CSV est simple. Il a deux caprices majeurs. Tout d'abord, alors qu'il fait la citation automatique des chaînes, il cite toujours toutes les chaînes. Deuxièmement, il tronquera / développera tous les nombres décimaux avec la précision par défaut. L'interface FLTK est opérationnelle, mais elle est boguée.

SC est rapide et stable. Il fonctionne de manière similaire à vi et est à peu près aussi adapté aux débutants. Des programmes externes sont nécessaires pour convertir entre le format SC et CSV. L' pscoutil (CSV -> SC uniquement) est installé avec SC et fonctionne comme suit:

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

Après la modification, enregistrez le fichier avec la commande Put , puis utilisez l' ssconvertutilitaire (SC -> CSV uniquement) fourni avec Gnumeric:

ssconvert file.sc file.csv

J'ai essayé de faire le tour d'une variété de choses avec psc- ssconvertet le processus semble stable. Les nombres et les chaînes sont traités correctement.

Une autre méthode pour éditer des fichiers CSV serait d'utiliser un éditeur de texte avec un plugin approprié. Les deux Emacs et Vim ont, bien que la version est plus rapide et Vim avait plus de fonctionnalités. Ceux-ci offrent la mise en évidence, l'alignement des colonnes et les opérations de bloc. J'ai trouvé que les deux étaient très lents et buggés.

user60598
la source