Consola interactiva basada en editor CSV

12

Aunque las aplicaciones de hoja de cálculo para editar archivos CSV en la consola solían ser una de las primeras aplicaciones asesinas para computadoras personales, solo algunas de ellas y aún menos documentación sobre ellas aún se mantienen activamente.

Después de haber realizado una búsqueda exhaustiva en la web, páginas de manual y código fuente, terminé con las siguientes tres aplicaciones que tienen inconvenientes fundamentales:

  • sc: abreviatura. para calculadora de hoja de cálculo; Una buena herramienta con combinaciones de teclas vi, pero no pone cadenas que contienen el delimitador entre comillas cuando se exporta al formato separado del delimitador y no puede importar archivos csv correctamente, es decir, todos los números se interpretan como cadenas
  • GNU oleo: parece que ya no se mantiene activamente desde 2001 y, por lo tanto, no hay paquetes para las principales distribuciones de Linux
  • tetera: ofrece paquetes para varios sistemas operativos, pero utiliza, por ejemplo, nombres contra-intuitivos para celdas (números para fila y columna, es decir, 11 parece ser la fila 1, columna 1) y código superfluo para FLTK GUI

Varios modos de Emacs tampoco citan cadenas que contienen bien el delimitador o requieren mucho más tipeo para ingresar al andamio de una tabla.

Por lo tanto, estaría muy agradecido por superar uno de estos inconvenientes o cualquier pista hacia otro editor CSV basado en consola. En realidad, no necesita hacer ningún cálculo, solo editar celdas o columnas y filas.

Enfermera pingüino
fuente
stackoverflow.com/questions/1875305/command-line-csv-viewer
Ciro Santilli 冠状 病毒 审查 六四 事件 法轮功

Respuestas:

11

Por lo general, se espera que un editor CSV reconozca los números como tales, comite las cadenas solo cuando sea necesario, permita delimitadores dentro de las cadenas citadas y no contraiga las celdas vacías. Entonces, esto en la pantalla

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

debería correlacionarse con esto en el archivo

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

Oleo no se ha mantenido durante varios años. Instalé un paquete antiguo en un sistema Debian reciente y encontré que era incómodo y con muchos errores. Las operaciones requieren más de la cantidad habitual de pulsaciones de teclas. Se deben citar todas las cadenas y debe hacerlo manualmente. El filtro de importación CSV no puede manejar comas dentro de cadenas. Los números de precisión larga no se mantienen en su forma original (por ejemplo, 1.23456789 se convierte en 1.234567889999999). El proceso a veces se convierte en fugitivo para que no se pueda matar desde la línea de comando.

Parece que MacroCALC, Teapot y SC son las únicas hojas de cálculo de CLI que aún se mantienen.

MacroCALC no puede importar o exportar limpiamente archivos CSV.

La tetera es un poco inusual, pero es muy fácil de usar y el manual es de lectura rápida. Importar / exportar CSV es simple. Tiene dos peculiaridades principales. Primero, si bien cita las cadenas automáticamente, siempre cita todas las cadenas. En segundo lugar, truncará / expandirá todos los números decimales a la precisión predeterminada. La interfaz FLTK está operativa, pero tiene errores.

SC es rápido y estable. Funciona de manera similar a vi y es tan amigable para principiantes. Se requieren programas externos para convertir entre formato SC y CSV. La pscherramienta (CSV -> SC solamente) se instala con SC y funciona así:

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

Después de editar, guarde el archivo con el comando Put , luego use la ssconvertutilidad (SC -> CSV solamente) que viene con Gnumeric:

ssconvert file.sc file.csv

Intenté dar vueltas con una variedad de cosas psc, ssconverty el proceso parece estable. Los números y las cadenas se manejan correctamente.

Un método alternativo para editar archivos CSV sería utilizar un editor de texto con un complemento apropiado. Tanto Emacs como Vim los tienen, aunque la versión de Vim es más rápida y tenía más funciones. Estos ofrecen resaltado, alineación de columnas y operaciones de bloque. Encontré que ambos eran muy lentos y con errores.

usuario60598
fuente