¿Alguien sabe de un visor CSV de línea de comandos para Linux / OS X? Estoy pensando en algo así, less
pero que separa las columnas de una manera más legible. (Estaría bien con abrirlo con OpenOffice Calc o Excel, pero eso es demasiado abrumador para solo mirar los datos como lo necesito). Tener un desplazamiento horizontal y vertical sería genial.
linux
macos
command-line
csv
Benjamin Oakes
fuente
fuente
Respuestas:
También puedes usar esto:
column
es un programa estándar de Unix que es muy conveniente: encuentra el ancho apropiado de cada columna y muestra el texto como una tabla bien formateada.Nota: siempre que tenga campos vacíos, debe colocar algún tipo de marcador de posición; de lo contrario, la columna se fusionará con las siguientes columnas. El siguiente ejemplo muestra cómo usar
sed
para insertar un marcador de posición:Tenga en cuenta que la sustitución de
,,
for, ,
se realiza dos veces. Si lo hace solo una vez,1,,,4
se convertirá1, ,,4
ya que la segunda coma ya coincide.fuente
column
. Terminé convirtiendo esto en un script de shell corto (la mayor parte es repetitivo "¿cómo lo uso?" Y código de comprobación de errores). github.com/benjaminoakes/utilities/blob/master/view-csvman column
:-n By default, the column command will merge multiple adjacent delimiters into a single delimiter when using the -t option; this option disables that behavior. This option is a Debian GNU/Linux extension.
Puede instalar
csvtool
(en Ubuntu) a través dey luego ejecuta:
Esto lo hará agradable y bonito dentro de una instancia de vim de solo lectura, incluso si tiene algunas celdas con valores muy largos.
fuente
ocaml-csv
paquetebase
para mí en Centos7Echa un vistazo a csvkit . Proporciona un conjunto de herramientas que se adhieren a la filosofía de UNIX (lo que significa que son pequeñas, simples, con un único propósito y se pueden combinar).
Aquí hay un ejemplo que extrae las diez ciudades más pobladas de Alemania de la base de datos gratuita de Maxmind World Cities y muestra el resultado en un formato legible por consola:
Csvkit es independiente de la plataforma porque está escrito en Python.
fuente
pip install csvkit
. ¡Disfrutar!Vista de tabulación: el visor de archivos CSV de línea de comandos de Python curses ligero (y también otros datos tabulares de Python, como una lista de listas) está aquí en Github
caracteristicas:
fuente
Si eres un vimmer, usa el complemento CSV , que es realmente hermoso .
fuente
El paquete de nodejs tecfu / tty-table se puede instalar globalmente para hacer precisamente esto:
También puede manejar transmisiones.
Para obtener más información, consulte los documentos sobre el uso del terminal aquí .
fuente
xsv es más que un espectador. Lo recomiendo para la mayoría de las tareas CSV en la línea de comandos, especialmente cuando se trata de grandes conjuntos de datos.
fuente
Mi proyecto CSVfix de FOSS le permite mostrar archivos CSV en formato de tabla "ASCII art".
fuente
La respuesta de Ofri te da todo lo que pediste. Pero ... si no desea recordar el comando, puede agregar esto a su ~ / .bashrc (o equivalente):
Esto es exactamente lo mismo que la respuesta de Ofri, excepto que lo he incluido en una función de shell y estoy usando la
less -S
opción para detener el ajuste de líneas (haceless
comporte más como una oficina / oocalc).Abra un nuevo shell (o escriba
source ~/.bashrc
su shell actual) y ejecute el comando usando:csview <filename>
fuente
Usé la respuesta de Pisswillis durante mucho tiempo.
Pero luego combiné un código que encontré en http://chrisjean.com/2011/06/17/view-csv-data-from-the-command-line que funciona mejor para mí:
La razón por la que funciona mejor para mí es que maneja mejor las columnas anchas.
fuente
tblless
en el paquete Tabulator envuelve elcolumn
comando unix y también alinea las columnas numéricas.fuente
Aquí hay una opción (probablemente también) simple:
fuente
Otra herramienta de manipulación de CSV multifuncional (y no solo): Miller . Según su propia descripción, es como awk, sed, cut, join y sort para datos indexados por nombre como CSV, TSV y JSON tabular. (enlace al repositorio de github: https://github.com/johnkerl/miller )
fuente
Escribí este csv_view.sh para formatear CSV desde la línea de comando, esto lee todo el archivo para determinar el ancho óptimo de cada columna (requiere perl, supone que no hay comas en los campos, también usa menos):
fuente
Usando TxtSushi puedes hacer:
fuente
Tabview es realmente bueno. Trabajó con archivos de más de 200 MB que se veían bien y que tenían errores con LibreOffice, así como con el complemento csv en gvim.
La versión de Anaconda está disponible aquí: https://anaconda.org/bioconda/tabview
fuente
He creado tablign para estos (y otros) propósitos. Instalar con
y
También funciona si los datos están separados por algo más que comas. Lo más importante es que conserva los delimitadores para que también pueda usarlo para diseñar sus tablas ASCII sin sacrificar su sintaxis [Markdown, CSV, LaTeX].
fuente
Collecting tablify Could not find a version that satisfies the requirement tablify (from versions: ) No matching distribution found for tablify
tablign
. Corregido en la descripción.Escribí un script, viewtab , en Groovy solo para este propósito. Lo invocas como:
Básicamente es una hoja de cálculo súper liviana que puede invocarse desde la línea de comando, maneja archivos separados por CSV y separadores de pestañas, puede leer archivos MUY grandes que Excel y Numbers ahogan, y es muy rápido. No es una línea de comandos en el sentido de ser solo texto, pero es independiente de la plataforma y probablemente se ajuste a la factura de muchas personas que buscan una solución al problema de inspeccionar rápidamente muchos o grandes archivos CSV mientras trabajan en un entorno de línea de comandos .
El script y cómo instalarlo se describen aquí:
http://bayesianconspiracy.blogspot.com/2012/06/quick-csvtab-file-viewer.html
fuente
Existe este breve script de línea de comandos en python: https://github.com/rgrp/csv2ascii/blob/master/csv2ascii.py
Simplemente descargue y coloque en su camino. El uso es como
Convierta el archivo csv en
csv-file-path
una forma ascii que devuelva el resultado en stdout. Sicsv-file-path
= '-' entonces lee de stdin.Opciones:
fuente