Aprende a usar el comando awk en Linux. Descubre cómo filtrar columnas, manipular texto y personalizar separadores de manera sencilla.
El comando awk en Linux tiene varias funciones y niveles de complejidade. Con él, puedes filtrar columnas en un texto e incluso crear lógicas para manipular contenido. En este artículo, aprenderás lo básico sobre cómo usar el comando awk en Linux. ¿Vamos allá?
¿Qué es el comando awk?
El comando awk es un lenguaje de script que resulta muy útil cuando trabajas con la línea de comandos. Se usa comúnmente para la manipulación de texto.
Por ejemplo, imagina que tienes un archivo con cinco columnas, donde cada columna contiene información diferente sobre una línea. Si consideras que solo es necesario ver la primera y la tercera columna, puedes crear fácilmente este filtro con awk. A continuación, veremos cómo hacerlo.
Cómo usar awk
El comando awk ofrece muchas funcionalidades, por lo que al principio puede parecer un poco complicado adaptarse. Te sugiero que sigas este artículo ejecutando los comandos directamente en tu terminal de Linux para familiarizarte con el comando.
Verificando a versão do awk
Para verificar a versão do awk execute o seguinte comando em seu terminal:
$ awk --version
Instalar awk
Si intentaste verificar la versión de awk con el comando anterior y no funcionó, es posible que no tengas awk instalado en tu distribución de Linux. Ejecuta el siguiente comando para instalar awk (es necesario tener permisos de root):
$ sudo apt-get install gawk
Cómo mostrar el contenido de un archivo
El comando awk permite visualizar el contenido de un archivo, siendo una de las formas más simples de usarlo. Para mostrar el contenido de un archivo, ejecuta el siguiente comando:
$ awk '{print}'ARCHIVO
Supongamos que tenemos un archivo llamado clientes.txt que contiene el siguiente contenido:
Nobre Edad Estado Clase
Ana 25 SC A
Armando 33 RJ B
Gustavo 32 SP A
Hugo 19 SP C
Julia 28 RS B
Luis 22 BA B
Rafaela 41 ES A
Victor 33 PI A
Usando awk, podemos mostrar el contenido del archivo clientes.txt con el siguiente comando:

Filtrar columnas en un archivo
El comando awk permite filtrar una columna específica de un archivo o texto. Por defecto, awk entiende que el separador de las columnas es un espacio o un tabulador, aunque esto se puede redefinir si es necesario.
Para hacerlo, simplemente ejecuta el siguiente comando:
$ awk '{print $NUMERO-DA-COLUNA}' ARCHIVO
Mira un ejemplo a continuación de cómo awk filtra la primera columna del archivo clientes.txt que mencionamos anteriormente:

Además, también es posible filtrar más de una columna. Mira un ejemplo de cómo awk filtra la primera y la tercera columna del archivo clientes.txt:

Filtrando columnas de una cadena
El comando awk también puede filtrar el contenido de una cadena usando el símbolo de pipe (|) para encadenar la salida de otro comando.
Por ejemplo, al usar el comando ls -la
, se muestra en el terminal todos los archivos que están en el directorio actual, junto con sus nombres e información:

Usa awk de la siguiente manera para filtrar una columna de una cadena:
$ ls -la | awk '{print $NUMERO-DE-LA-COLUMNA}'
Mira un ejemplo filtrando solo la novena columna:

Filtrar una columna usando otro patrón de separación
A veces, queremos filtrar una columna, pero no está separada por un espacio o tabulador, sino por otro carácter. En ese caso, necesitamos definir cuál será el carácter que se usará como separador de columnas en el contenido.
Para hacerlo, usamos la siguiente expresión:
$ awk -F 'CARACTER' '{print $
NUMERO-DE-LA-COLUMNA
}' ARCHIVO
Supongamos que el archivo urls-blog-hostgator.txt contiene el siguiente contenido de HostGator Brasil:
https://hostgator.com.br/blog/como-adicionar-o-google-analytics-no-wordpress
https://hostgator.com.br/blog/como-adicionar-um-favicon-no-wordpress
https://hostgator.com.br/blog/como-alterar-a-senha-de-administrador-do-drupal
https://hostgator.com.br/blog/como-alterar-a-senha-de-administrador-do-joomla
https://hostgator.com.br/blog/como-alterar-a-senha-de-administrador-do-magento
https://hostgator.com.br/blog/como-alterar-a-senha-do-administrador-wordpress
https://hostgator.com.br/blog/como-alterar-a-senha-do-cpanel
https://hostgator.com.br/blog/como-alterar-idioma-do-wordpress
https://hostgator.com.br/blog/como-armazenar-backups-de-um-servidor-dedicado-ou-vps-no-google-drive
https://hostgator.com.br/blog/como-ativar-o-modo-manutencao-no-wordpress
https://hostgator.com.br/blog/como-colocar-botao-do-whatsapp-no-wordpress
Si queremos filtrar solo la parte del slug de estas URLs, podemos usar el carácter / como separador de columnas. Quedaría así:

En el caso anterior, indicamos después de la opción -F que el carácter que define las columnas es / y, a continuación, imprimimos la quinta columna.
Consideraciones finales
En este artículo, aprendiste lo básico sobre el comando awk en Linux y algunas de sus opciones de filtrado.
Si tuviste alguna dificultad o tienes alguna sugerencia sobre algo que no se mencionó, solo déjala en los comentarios y, en el futuro, podremos actualizar este artículo.