El comando Linux gawk es la implementación GNU del lenguaje de programación para procesamiento de datos basado en texto de Unix: awk. El campo de posibilidades de ejecutar funcionalidades cuando se tiene conocimiento de este lenguaje es inmenso por la cantidad de procedimientos que nos permite. Aprenderlo es como quienes han trabajado de desarrolladores de software a la hora de aprender un nuevo lenguaje de programación, deben conocer declaración de variables y constantes, palabras reservadas, estructuras condicionales, ejecución de tareas cíclicas etc. Veamos en este artículo qué es y características.
Qué es y qué hace ‘gawk’
En dependencia de la distribución Linux que usted esté utilizando traerá ya instalado o no el programa gawk. Por ejemplo en Ubuntu 20.04 no viene instalado de forma predeterminada, a diferencia de awk que si vine instalado.
Si lo desean instalar puede hacerlo con el comando:
sudo apt install gawk
En caso de que desee conocer más acerca de los métodos para instalar aplicaciones en este sistema operativo, le recomendamos leer: Métodos para instalar aplicaciones en Linux
Cuando abrimos una consola y ejecutamos el comando Linux gawk se le está indicando al shell del sistema operativo que ejecute una serie de comandos. En pocas palabras gawk indican al shell que realice una serie de comandos sobre texto o archivos de texto. Los comandos se refieren al procesamiento de texto proveniente de la ejecución de otros comandos ejecutados por el usuario. Viene siendo un lenguaje de programación que trabaja con los datos que provienen de otros comandos y sobre ellos ejecuta operadores aritméticos, cadenas y ciclos, además de generar reportes. Es además un lenguaje de análisis semántico.
No se aprende a usar gawk de un día para otro, requiere mucho estudio. Si observamos su estructura de uso más común de entrada se ve algo compleja:
gawk [opciones] patron {acciones} [nombres-de-archivo]
El bloque de patrones acciones suele ponerse entre comillas para evitar que el shell lo interprete como comandos. Las acciones siempre van como se muestra en el patrón entre llaves. La acción más utilizada de gawk es print2 y se ejecuta por defecto por lo cual puede omitirse en la declaración. En los segmentos de patrón y acciones podemos definir tanto variables como constantes, si vamos a definir más de una variable debemos separarlas por comas.
Ejemplo de uso
history | awk '{a[$2]++}END{for(i in a){print a[i] " " i}}' | sort -rn | head
Si analizamos este ejemplo tendremos una idea de la potencialidad de saber usar el comando Linux gawk. Acá lo que logramos es mostrar en consola los 10 comandos más ejecutados históricamente en tu consola.
Dividamos el comando en cuatro pedazos y analicemos más a fondo cómo podemos lograr algo que a priori parece imposible de poder programar, más dentro de una consola. Comenzamos con que el comando gawk trabaja con el texto resultante de ejecutar el comando history, si ejecutamos solamente history en una consola obtendremos todos los comandos que se han ejecutado en consola por fecha de uso de forma descendente.
history
Debajo vemos como gawk lo que hace es contar la cantidad de veces que se ejecutó cada comando listado por la salida del anterior comando.
gawk '{a[$2]++}END{for(i in a){print a[i] " " i}}'
y su salida mediante una tubería (grep) se ordena descendentemente por la cantidad que calculó gawk con el comando sort -rn
sort -rn
y mediante otra tubería se le pasa al siguiente comando head que se encarga de seleccionar solo los primeros 10 elementos.
head

Artículos relacionados que te podrían resultar interesantes

Las Mejores Distribuciones de Linux de todos los Tiempos
Leer Más

Guía para Principiantes de Linux
Leer Más

¿Cómo Instalar Aplicaciones en Linux?
Leer Más

Todo sobre Lubuntu.
Leer Más

¿Qué es la Distribución Linux Fedora?
Leer Más
Comando Linux Gawk, Características y Uso
Leer Más

¿Cómo Escribir Comandos y Scripts AWK?
Leer Más

¿Qué es la distribución Linux OpenWrt?
Leer Más

¿Qué es y cómo utilizar el Shell de GNU/Linux?
Leer Más

Línea de comandos de Linux
Leer Más

Comandos para navegar en el sistema de archivos de Linux
Leer Más

Cómo Utilizar las Características del Comando PWD
Leer Más

Alternativas de Comandos de Linux y Unix.
Leer Más

Sistema de Archivos de Linux: Qué es y Cómo Funciona
Leer Más

Funciones del Comando Linux «fdisk»
Leer Más

Diferencia entre Linux y GNU/Linux
Leer Más

Guía de paquetes de instalación en Linux
Leer Más

Métodos para instalar aplicaciones en Linux
Leer Más

Ubuntu GNOME v/s openSUSE v/s Fedora
Leer Más

Cómo instalar paquetes en formato .deb
Leer Más

Qué es Linux Mint: unas de las distribuciones más populares de Linux
Leer Más