17 votes

Éditeur CSV basé sur une console interactive

Bien que les applications de feuilles de calcul permettant d'éditer des fichiers CSV sur la console aient été l'une des premières applications tueuses pour les ordinateurs personnels, il n'en reste que peu et encore moins de documentation à leur sujet.

Après avoir effectué des recherches approfondies sur le web, les pages de manuel et le code source, j'ai abouti aux trois applications suivantes qui présentent toutes des inconvénients fondamentaux :

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

Divers modes d'Emacs ne citent pas bien non plus les chaînes de caractères contenant le délimiteur ou exigent beaucoup plus de saisie pour entrer l'échafaudage d'un tableau.

C'est pourquoi je serais très reconnaissant si vous pouviez surmonter l'un de ces inconvénients ou si vous pouviez m'indiquer un autre éditeur CSV basé sur la console. Il n'est pas nécessaire de faire des calculs, il suffit d'éditer des cellules ou des colonnes et des lignes.

13voto

Steerpike Points 5937

On attend généralement d'un éditeur CSV qu'il reconnaisse les nombres en tant que tels, qu'il ne mette les chaînes entre guillemets que lorsque cela est nécessaire, qu'il autorise les délimiteurs dans les chaînes entre guillemets et qu'il ne réduise pas 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 à ceci 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 vieux paquet sur un système Debian récent et j'ai trouvé qu'il était maladroit et très bogué. Les opérations prennent plus que le nombre habituel de frappes au clavier. Toutes les chaînes de caractères 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 de caractères. Les nombres de longue précision ne sont pas conservés dans leur forme originale (par exemple, 1,23456789 devient 1,234567889999999). Le processus s'emballe parfois de sorte qu'il ne peut pas être tué à partir de la ligne de commande.

Il semble que MacroCALC, Teapot et SC soient les seuls tableurs CLI encore maintenus.

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

Théière est un peu inhabituel, mais il est très facile à utiliser et le manuel se lit rapidement. L'importation/exportation de CSV est simple. Il présente deux inconvénients majeurs. Premièrement, bien qu'il cite automatiquement les chaînes de caractères, il cite toujours toutes les chaînes de caractères. Deuxièmement, il va tronquer/étendre tous les nombres décimaux à 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 aussi facile à utiliser pour les débutants. Des programmes externes sont nécessaires pour convertir le format SC en CSV. Le site psc (CSV -> SC uniquement) est installé avec SC et fonctionne comme suit :

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

Après l'avoir modifié, enregistrez le fichier avec l'option Mettez puis utilisez la commande ssconvert (SC -> CSV seulement) qui est fourni avec Gnumeric :

ssconvert file.sc file.csv

J'ai essayé de faire le tour de plusieurs choses avec psc - ssconvert et le processus semble stable. Les nombres et les chaînes de caractères sont traités correctement.

Une méthode alternative pour éditer les fichiers CSV serait d'utiliser un éditeur de texte avec un plugin approprié. Les deux sites Emacs y Vim les ont, bien que la version Vim soit plus rapide et offre plus de fonctionnalités. Ils 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 bogués.

4voto

user123417 Points 1086

Scim est le meilleur que j'ai vu et peut nativement importer csv et exporter csv.

https://github.com/andmarti1424/scim

3voto

Shadi Points 1685

Mon éditeur csv terminal préféré est visidata : https://www.visidata.org/

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X