Mostrar salida de comando o contenido de archivo en formato de columna


¿Está harto de ver la salida de comandos congestionada o el contenido del archivo en el terminal? Este breve artículo demostrará cómo mostrar la salida de un comando o el contenido de un archivo en un formato "en columnas" mucho más claro.

Podemos usar la utilidad de columna para transformar la entrada estándar o el contenido de un archivo en forma tabular de múltiples columnas, para una salida mucho más clara.

Para entenderlo más claramente, hemos creado el siguiente archivo “tecmint-author.txt” que contiene una lista de los nombres de los 10 autores principales, el número de artículos escritos y el número de comentarios que han recibido sobre el artículo hasta ahora.

Para demostrar esto, ejecute el comando cat a continuación para ver el archivo tecmint -hors.txt.

$ cat tecmint-authors.txt
pos|author|articles|comments
1|ravisaive|431|9785
2|aaronkili|369|7894
3|avishek|194|2349
4|cezarmatei|172|3256
5|gacanepa|165|2378
6|marintodorov|44|144
7|babin lonston|40|457
8|hannyhelal|30|367
9|gunjit kher|20|156
10|jesseafolabi|12|89

Usando el comando column, podemos mostrar una salida mucho más clara de la siguiente manera, donde el -t ayuda a determinar el número de columnas que contiene la entrada y crea una tabla y el código -s especifica un carácter delimitador.

$ cat tecmint-authors.txt  | column -t -s "|"
pos  author         articles  comments
1    ravisaive      431       9785
2    aaronkili      369       7894
3    avishek        194       2349
4    cezarmatei     172       3256
5    gacanepa       165       2378
6    marintodorov   44        144
7    babin lonston  40        457
8    hannyhelal     30        367
9    gunjit kher    20        156
10   jesseafolabi   12        89

De forma predeterminada, las filas se rellenan antes que las columnas, para rellenar las columnas antes de rellenar las filas utilice el interruptor -x y para indicar el comando de columna, considere las líneas vacías (que se ignoran de forma predeterminada), incluya el -e bandera.

Aquí hay otro ejemplo práctico, ejecute los dos comandos a continuación y vea la diferencia para comprender mejor lo que puede hacer la columna mágica

$ mount
$ mount | column -t
sysfs        on  /sys                             type  sysfs            (rw,nosuid,nodev,noexec,relatime)
proc         on  /proc                            type  proc             (rw,nosuid,nodev,noexec,relatime)
udev         on  /dev                             type  devtmpfs         (rw,nosuid,relatime,size=4013172k,nr_inodes=1003293,mode=755)
devpts       on  /dev/pts                         type  devpts           (rw,nosuid,noexec,relatime,gid=5,mode=620,ptmxmode=000)
tmpfs        on  /run                             type  tmpfs            (rw,nosuid,noexec,relatime,size=806904k,mode=755)
/dev/sda10   on  /                                type  ext4             (rw,relatime,errors=remount-ro,data=ordered)
securityfs   on  /sys/kernel/security             type  securityfs       (rw,nosuid,nodev,noexec,relatime)
tmpfs        on  /dev/shm                         type  tmpfs            (rw,nosuid,nodev)
tmpfs        on  /run/lock                        type  tmpfs            (rw,nosuid,nodev,noexec,relatime,size=5120k)
tmpfs        on  /sys/fs/cgroup                   type  tmpfs            (rw,mode=755)
cgroup       on  /sys/fs/cgroup/systemd           type  cgroup           (rw,nosuid,nodev,noexec,relatime,xattr,release_agent=/
....

Para guardar la salida bien formateada en un archivo, use la redirección de salida como se muestra.

$ mount | column -t >mount.out

Para obtener más información, consulte la página de manual de columnas:

$ man column 

También le puede interesar leer los siguientes artículos relacionados.

  1. Cómo usar Awk y expresiones regulares para filtrar texto o cadenas en archivos
  2. Cómo buscar y ordenar archivos según la fecha y hora de modificación en Linux
  3. 11 comandos avanzados "Grep" de Linux sobre clases de caracteres y expresiones entre corchetes

Si tiene alguna pregunta, utilice el formulario de comentarios a continuación para escribirnos. También puede compartir con nosotros consejos y trucos útiles sobre la línea de comandos en Linux.