También puedes usar esto:
column -s, -t < somefile.csv | less -#2 -N -S
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 con un formato agradable.
Nota:cada vez que tenga campos vacíos, debe colocar algún tipo de marcador de posición en él, de lo contrario, la columna se fusionará con las siguientes columnas. El siguiente ejemplo demuestra cómo usar sed
para insertar un marcador de posición:
$ cat data.csv
1,2,3,4,5
1,,,,5
$ sed 's/,,/, ,/g;s/,,/, ,/g' data.csv | column -s, -t
1 2 3 4 5
1 5
$ cat data.csv
1,2,3,4,5
1,,,,5
$ column -s, -t < data.csv
1 2 3 4 5
1 5
$ sed 's/,,/, ,/g;s/,,/, ,/g' data.csv | column -s, -t
1 2 3 4 5
1 5
Tenga en cuenta que la sustitución de ,,
para , ,
se hace dos veces. Si lo haces solo una vez, 1,,,4
se convertirá en 1, ,,4
ya que la segunda coma ya coincide.
Puedes instalar csvtool
(en Ubuntu) a través de
sudo apt-get install csvtool
y luego ejecuta:
csvtool readable filename | view -
Esto lo hará agradable y bonito dentro de una instancia de vim de solo lectura, incluso si tiene algunas celdas con valores muy largos.
Echa un vistazo a csvkit. Proporciona un conjunto de herramientas que se adhieren a la filosofía UNIX (lo que significa que son pequeñas, simples, de un solo propósito y pueden combinarse).
Aquí hay un ejemplo que extrae las diez ciudades más pobladas de Alemania de la base de datos gratuita Maxmind World Cities y muestra el resultado en un formato legible por consola:
$ csvgrep -e iso-8859-1 -c 1 -m "de" worldcitiespop | csvgrep -c 5 -r "\d+"
| csvsort -r -c 5 -l | csvcut -c 1,2,4,6 | head -n 11 | csvlook
-----------------------------------------------------
| line_number | Country | AccentCity | Population |
-----------------------------------------------------
| 1 | de | Berlin | 3398362 |
| 2 | de | Hamburg | 1733846 |
| 3 | de | Munich | 1246133 |
| 4 | de | Cologne | 968823 |
| 5 | de | Frankfurt | 648034 |
| 6 | de | Dortmund | 594255 |
| 7 | de | Stuttgart | 591688 |
| 8 | de | Düsseldorf | 577139 |
| 9 | de | Essen | 576914 |
| 10 | de | Bremen | 546429 |
-----------------------------------------------------
Csvkit es independiente de la plataforma porque está escrito en Python.