Tutorial de comandos de columna de Linux para principiantes (con ejemplos)

A veces, mientras trabajas en la línea de comandos en Linux, puede que quieras mostrar el contenido de un archivo en formato de columnas. Te alegrará saber que existe una utilidad de línea de comandos en Linux que te permite hacer esto. El nombre de la herramienta es columna, y hablaremos de los fundamentos de este comando utilizando algunos ejemplos fáciles de entender.

Pero antes de hacerlo, vale la pena mencionar que todos los ejemplos aquí expuestos se han probado en una máquina Ubuntu 18.04 LTS.

Comando columna de Linux

El comando columna en Linux te permite encolumnar listas. A continuación se muestra su sintaxis:

column [-entx] [-c columns] [-s sep] [file ...]

Y así es como lo define la página man de la herramienta:

     The column utility formats its input into multiple columns.  Rows are
     filled before columns.  Input is taken from file operands, or, by
     default, from the standard input.

A continuación se muestran algunos ejemplos con estilo de preguntas y respuestas que deberían darte una mejor idea de cómo funciona el comando columna.

Q1. ¿Cómo se utiliza el comando columna?

El uso básico es bastante sencillo. Supón que tienes un archivo llamado ‘prueba.txt’ que contiene la siguiente información:

1
2
3
4
5
6
7
8
9
10

Ahora, para encolumnar el contenido de este archivo, utiliza el comando columna de la siguiente manera:

column test.txt

Y obtendrás una salida como ésta:

1    2    3    4    5    6    7    8    9    10

Q2. ¿Cómo encolumnar una salida delimitada?

Supongamos que un archivo tiene el siguiente contenido:

No.|Country|Yes/No
01|India|Y
02|US|Y
03|Australia|Y
04|China|N
05|Russia|Y
06|Japan|Y
07|Singapore|Y
08|South Korea|N
09|Finaland|Y
10|Ireland|Y

Ahora, ejecuta el comando columna de la siguiente manera:

column test.txt -t -s "|"

Y aquí tienes la salida producida:

No.  Country      Yes/No
01   India        Y
02   US           Y
03   Australia    Y
04   China        N
05   Russia       Y
06   Japan        Y
07   Singpaore    Y
08   South Korea  N
09   Finaland     Y
10   Ireland      Y

Para tu información, así es como la página de manual del comando column explica las opciones de línea de comandos -t y -s:

-s      Specify a set of characters to be used to delimit columns for the
        -t option.

-t      Determine the number of columns the input contains and create a
table.  Columns are delimited with whitespace, by default, or
with the characters supplied using the -s option.  Useful for
pretty-printing displays.

Q3. ¿Qué ocurre en los casos con delimitadores múltiples?

En el ejemplo anterior, has visto que el contenido original contenía la tubería «|» como delimitador. Así que el comando columna utilizó este delimitador para producir una salida en formato columna. Pero, ¿y si hubiera dos tuberías en algunas entradas? Por ejemplo, mira aquí la primera línea:

No.||Country||Yes/No
01|India|Y
02|US|Y
03|Australia|Y
04|China|N
05|Russia|Y
06|Japan|Y
07|Singpaore|Y
08|South Korea|N
09|Finland|Y
10|Ireland|Y

Por defecto, el comando columna fusiona varios delimitadores adyacentes en un único delimitador. Sin embargo, si quieres, puedes utilizar la opción de línea de comandos -n para desactivar ese comportamiento. Así que, en ese caso, el comando columna pasaría a ser:

column -n test.txt -t -s "|"

Q4. ¿Cómo trata el comando columna las líneas vacías?

Por defecto, el comando columna ignora las líneas vacías. Sin embargo, si lo deseas, puedes suprimir este comportamiento utilizando la opción de línea de comandos -e.

Por ejemplo, la línea de contenido del archivo este:

No.|Country|Yes/No
01|India|Y
02|US|Y
03|Australia|Y

04|China|N
05|Russia|Y
06|Japan|Y

07|Singapore|Y
08|South Korea|N
09|Finland|Y
10|Ireland|Y

saldrá como

No.  Country      Yes/No
01   India        Y
02   US           Y
03   Australia    Y
04   China        N
05   Russia       Y
06   Japan        Y

07   Singapore    Y
08   South Korea  N
09   Finland     Y
10   Ireland      Y

utilizando el siguiente comando:

column -e test.txt -t -s "|"

Conclusión

Dependiendo del tipo de trabajo que realices en la línea de comandos de Linux, el comando columna podría serte de gran ayuda. En este tutorial, hemos tratado la mayoría de las opciones que ofrece la herramienta. Para más información, dirígete a su página man.

También te podría gustar...