Quelle est la bonne façon de modifier des fichiers CSV dans Ubuntu?
Les fichiers ressemblent à ceci:
This,is,data,with,a,header
2,2,3,4,,
1,,3,,6,6
,5,3,5,5,6
1,2,,,,
1,2,3,4,8,6
1,,9,,5,9
-1,,3,4,5,6
1,2,0,4,5,6
J'utilise OpenOffice, mais il faut environ 5 clics pour désactiver le comportement par défaut de la citation de tous les champs.
J'aimerais trouver quelque chose de léger et facile à utiliser qui permettra d'insérer / supprimer des données et un tri basé sur les colonnes.
ubuntu
text-editors
csv
Andrew Wood
la source
la source
Les java CsvEditors (par exemple csveditor , reCsvEditor ) peuvent valoir le coup d'œil
la source
Vous pouvez utiliser gnumeric à cette fin. Sur mon système (Crunchbang) et avec un fichier aussi petit que dans votre exemple, leafpad consomme environ 2M de RAM; gnumérique, 4M; et scalc (de LibreOffice), 34M. Gnumeric est clairement du côté léger, et il devrait détecter correctement votre séparateur à l'ouverture du fichier.
Mais (il y a un mais ...) gnumeric ne vous permettra pas d'enregistrer le fichier modifié sans passer par un obstacle de menus. Ce qui suit est un script BASH pour résoudre ce problème. Le script s'appuie sur xsel (un gestionnaire de presse-papiers de ligne de commande léger) pour coller à nouveau le contenu de la feuille de calcul modifiée dans votre fichier. S'il est sourced (non exécuté), ce script vous donne accès à deux fonctions, gn pour ouvrir le fichier en gnumeric:
gn filename
et gp pour coller le contenu dans le fichier et fermer gnumeric:
gp
(Personnellement, je source ce script dans mon .bashrc pour avoir les fonctions gn et gp disponibles chaque fois que j'ouvre un terminal.)
Comme le script lui-même vous le dira lors de l'ouverture de votre fichier avec gnumeric, lorsque vous avez terminé votre édition, vous devez sélectionner la partie de la feuille de calcul que vous souhaitez enregistrer avant d'appuyer sur Ctr-C (pour copier cette partie dans le presse-papiers). Pour revenir à la ligne de commande (Alt-Tab), entrer gp mettra à jour votre fichier avec le contenu du presse-papiers et fermera gnumeric. Vos valeurs modifiées ne seront pas entourées de guillemets, mais elles seront séparées par des tabulations; par conséquent, le script utilise sed pour remplacer les tabulations par des virgules.
J'ai trouvé que c'était un moyen efficace de travailler sur des fichiers de données CSV à partir de la ligne de commande. Le script doit enregistrer le fichier correctement tant qu'il ne contient pas d'onglets dans les champs séparés par des virgules (ce qui semble être le cas dans votre exemple d'analyse de données).
la source
Je sais ce que vous voulez dire à propos de {Libre, Open} Office. TBH, je n'ai jamais rien trouvé de vraiment bon sur Linux qui soit aussi léger.
Le "meilleur" (oui, entre guillemets ironiques) que j'ai trouvé jusqu'à présent est une application java appelée csveditor C'est assez propre, mais ne suit pas vraiment les meilleures directives de l'interface utilisateur.
la source
J'utilise DMcsvEditor . Il est rapide et léger, et dispose de quelques options de base utiles.
la source
J'utilise phpstorm et je dois beaucoup gérer les fichiers CSV, et il prend en charge leur édition dans une vue de table et il fonctionne beaucoup mieux que le plugin vim csv.vim ou le plugin atom tablr.
La même chose devrait s'appliquer à leurs autres éditeurs, à savoir IntelliJ Idea, Android Studio, Pycharm et RubyMine. Ce n'est pas un logiciel libre, mais certains de leurs produits ont des éditions communautaires.
(Pourtant, il n'est pas parfait car il montre parfois des erreurs de fichier trop importantes.)
la source
Je suggère un plugin tablr pour l'éditeur Atom.
Ce n'est pas l'option la plus légère, mais permet des modifications simples en quelques clics.
la source
J'ai enregistré votre exemple sous test.csv et l'ai ouvert avec LibreOffice sans aucun problème:
J'ai ensuite obtenu cette boîte de dialogue et j'ai choisi "virgule" comme séparateur:
J'ai cliqué sur OK et j'ai obtenu ceci:
De quoi d'autre avez-vous besoin?
la source
gawk
:)