Comando column en Linux: Formatear Salida en Columnas, CSV y JSON
El comando column en Linux puede ahorrarle mucho tiempo a un desarrollador. Permite formatear un archivo o la salida de un comando en columnas, CSV (separado por coma) o JSON.
Esto realmente ahorra mucho tiempo en transformación de datos.
Vea por ejemplo el archivo /etc/passwd que contiene los usuarios del sistema, con los campos separados por dos puntos:
$ cat /etc/passwdroot:x:0:0:root:/root:/bin/bashdaemon:x:1:1:daemon:/usr/sbin:/bin/falsebin:x:2:2:bin:/bin:/bin/falsesys:x:3:3:sys:/dev:/bin/falsesync:x:4:65534:sync:/bin:/bin/syncgames:x:5:60:games:/usr/games:/bin/falseman:x:6:12:man:/var/cache/man:/bin/false
El comando column puede usarse para leer el contenido de este archivo y separarlo en columnas:
$ column /etc/passwd -s : -troot x 0 0 root /root /bin/bashdaemon x 1 1 daemon /usr/sbin /bin/falsebin x 2 2 bin /bin /bin/falsesys x 3 3 sys /dev /bin/falsesync x 4 655 sync /bin /bin/syncgames x 5 60 games /usr/games /bin/falseman x 6 12 man /var/cache/man /bin/false
El comando column también puede usarse para ver un archivo Separado-por-coma CSV:
$ cat contatos.csv | column -t -s,NOME TEL EMAILUira Ribeiro (31) 3069-8315 [email protected]
Esto puede ser útil para visualizar este tipo de archivo sin necesidad de tener Excel o similar.
En algunas distribuciones el comando column permite exportar los datos en formato JSON, usando la opción "-J", seguida de los nombres de las columnas:
$ cat /etc/passwd | column -t -s : -J --table-columns LOGIN,PASSWORD,UID,GUID,NOME,HOME,SHELL{ "table": [ {"login": "root", "password": "x", "uid": "0", "guid": "0", "nome": "root", "home": "/root", "shell": "/bin/bash"}, {"login": "bin", "password": "x", "uid": "1", "guid": "1", "nome": "bin", "home": "/bin", "shell": "/sbin/nologin"}, {"login": "daemon", "password": "x", "uid": "2", "guid": "2", "nome": "daemon", "home": "/sbin", "shell": "/sbin/nologin"}, {"login": "adm", "password": "x", "uid": "3", "guid": "4", "nome": "adm", "home": "/var/adm", "shell": "/sbin/nologin"}, {"login": "lp", "password": "x", "uid": "4", "guid": "7", "nome": "lp", "home": "/var/spool/lpd", "shell": "/sbin/nologin"}, {"login": "sync", "password": "x", "uid": "5", "guid": "0", "nome": "sync", "home": "/sbin", "shell": "/bin/sync"}, {"login": "shutdown", "password": "x", "uid": "6", "guid": "0", "nome": "shutdown", "home": "/sbin", "shell": "/sbin/shutdown"}, {"login": "halt", "password": "x", "uid": "7", "guid": "0", "nome": "halt", "home": "/sbin", "shell": "/sbin/halt"}, {"login": "mail", "password": "x", "uid": "8", "guid": "12", "nome": "mail", "home": "/var/spool/mail", "shell": "/sbin/nologin"}, ]}
Este comando puede usarse en conjunto con cualquier comando del sistema, para generar archivos JSON.
Vea por ejemplo lo fácil que es generar una lista de archivos de un directorio en JSON:
$ ls -1 | column -t -J --table-columns ARQUIVO --table-name ARQUIVOS{ "ARQUIVOS": [ {"arquivo": "agradecimento.html"}, {"arquivo": "agradecimentos"}, {"arquivo": "amazon.php"}, {"arquivo": "backup.sh"}, {"arquivo": "certbot-auto"}, {"arquivo": "certificado"}, ]}
En este ejemplo, la salida del comando ls, con la opción -1 que lista solamente los archivos uno por línea fue transformada por el comando column en un archivo JSON con columna llamada ARQUIVO, en la tabla ARQUIVOS.
Aprenda mucho más sobre Linux en nuestro curso en línea. Puede realizar la inscripción aquí. Si ya tiene una cuenta, o quiere crear una, simplemente ingrese o cree su usuario aquí.
¿Le gustó? Comparta
Eso fue solo una pieza. El curso enseña el camino completo — desde tu primer comando hasta el día del examen.