GNU/Linux >> Tutoriales Linux >  >> Linux

Ver archivo tabular como CSV desde la línea de comando

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.


Linux
  1. Uso de Google Drive desde la línea de comandos de Linux

  2. Eliminación de líneas específicas de un archivo en la línea de comandos de Linux

  3. ¿Cómo borrar el contenido de un archivo desde la línea de comando?

  4. ¿Cómo puedo abrir un archivo de solo lectura desde la línea de comando con emacs/vi/vim?

  5. Alternativa a la línea de comandos SSH de Ubuntu

Copie un archivo a varios directorios desde la línea de comandos en Linux

Cómo enviar un correo electrónico con un archivo adjunto desde la línea de comandos

Ver el contenido de un archivo en la línea de comandos de Linux

Cómo quitar líneas de un archivo usando el comando Sed

5 comandos para ver el contenido de un archivo en la línea de comandos de Linux

¿Cómo verificar el uso de Inode desde cPanel y la línea de comandos?