Comando Linux Gawk, Características y Uso

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
Ejemplo comando gawk
Ejemplo comando gawk

Artículos relacionados que te podrían resultar interesantes

tux linux

Las Mejores Distribuciones de Linux de todos los Tiempos

Linux constituye a día de hoy un sistema operativo ampliamente adoptado a nivel internacional, solamente superado en el mundo de ...
Leer Más
linux

Guía para Principiantes de Linux

Linux es el nombre que reciben una serie de sistemas operativos de UNIX que operan bajo la licencia GNU GPL, ...
Leer Más
app linux

¿Cómo Instalar Aplicaciones en Linux?

La mayoría de los usuarios comunes en el mundo de los ordenadores utilizan sistemas operativos como Microsoft Windows o MacOS ...
Leer Más
Todo sobre Lubuntu

Todo sobre Lubuntu.

Lubuntu es una distribución oficial de Ubuntu, cuyo principal objetivo es crear un sistema operativo que utilice un mínimo de ...
Leer Más
Distribucion Linux Fedora

¿Qué es la Distribución Linux Fedora?

Como sabemos existe toda una familia de distribuciones basadas en GNU/Linux. La distribución Linux Fedora es una de las más ...
Leer Más

Comando Linux Gawk, Características y Uso

El comando Linux gawk es la implementación GNU del lenguaje de programación para procesamiento de datos basado en texto de ...
Leer Más
¿Cómo Escribir Comandos y Scripts AWK?

¿Cómo Escribir Comandos y Scripts AWK?

El comando awk es un método muy útil para procesar o analizar archivos de texto en Linux. En particular, analiza ...
Leer Más
Linux security

¿Qué es la distribución Linux OpenWrt?

En los últimos años se detectaron problemas de seguridad en routers comerciales que permitían el espionaje a través de puertas ...
Leer Más
Codigo space

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

Unix fue la base de lo que conocemos como Linux (núcleo del sistema operativo GNU/Linux) por ende Linux cuando aún ...
Leer Más
Línea de comandos de Linux

Línea de comandos de Linux

La línea de comandos de Linux es un sistema basado en texto que introduce comandos al equipo y devuelve resultados ...
Leer Más
linux_SO

Comandos para navegar en el sistema de archivos de Linux

Conocer los principales comandospara navegar por el sistema de archivos de Linux es fundamental para todo usuario de esta familia ...
Leer Más
Linux system

Cómo Utilizar las Características del Comando PWD

Para navegar por el sistema de archivos de Linux uno de los comandos más útiles -de origen Unix- es el ...
Leer Más
Linux rojo

Sistema de Archivos de Linux: Qué es y Cómo Funciona

Los usuarios que usan distribuciones GNU/Linux debieran conocer la estructura de carpetas que conforman su sistema de archivos. Quien haya ...
Leer Más
Comando Linux

Funciones del Comando Linux “fdisk”

fdisk es un editor de particiones de línea de comandos que permite crear, editar y administrar las particiones en los ...
Leer Más
Icono Linux

Diferencia entre Linux y GNU/Linux

Existe un desconocimiento generalizado sobre la diferencia entre los términos Linux y GNU/Linux. Esto trae consigo que utilicemos normalmente el ...
Leer Más
linux cabezon

Guía de paquetes de instalación en Linux

Instalar aplicaciones en Linux en principio era extremadamente complejo, requería de habilidades que no se encuentran en el usuario común ...
Leer Más
Linux install

Métodos para instalar aplicaciones en Linux

Las personas que deciden migrar a Linux tienen como uno de los primeros y más comunes problemas el como instalar ...
Leer Más
Ubuntu GNOME v/s openSUSE v/s Fedora

Ubuntu GNOME v/s openSUSE v/s Fedora

Ubuntu GNOME, openSUSE, y Fedora son dos de las distribuciones más populares des Sistema Linux. Sin embargo muchas personas no sabrían cuál escoger en ...
Leer Más
ubuntu keys

Cómo instalar paquetes en formato .deb

Existen múltiples formas de instalar los diversos tipos de paquetes en distribuciones Linux. Las más comunes son, haciendo uso de ...
Leer Más