Aprenda Linux

Comando awk de Linux con 10 ejemplos

Comando awk de Linux con 10 ejemplos

Los sistemas informáticos siempre se han utilizado para analizar datos valiosos almacenados en archivos de texto simples. A su vez, los propios sistemas informáticos se gestionan mediante archivos de registro. Lo que es potencialmente común en estas dos situaciones es que contienen una gran cantidad de datos, que a menudo deben simplificarse antes de leer los datos; de lo contrario, es confuso.

Por ejemplo, si está leyendo algunos datos organizados en forma tabular, desea algunas columnas, no desea otras.

Este requisito era terrible incluso en el pasado y, en consecuencia, el Proyecto GNU tiene una herramienta increíble que ayuda a los usuarios a filtrar y extraer datos para una mejor experiencia. Esa herramienta es AWK.

Historia

AWK es en realidad un lenguaje de programación dedicado al procesamiento de texto. Se utiliza para la extracción de datos en patrones específicos. Fue desarrollado en la década de 1970 por Bell Labs, por Alfred Aho, Peter Weinberger y Brian Kernighan (las iniciales de sus apellidos dieron origen al nombre). El desarrollo de awk no se detuvo ahí. Se introdujo una nueva versión en 1985, que trajo nuevos cambios al comando awk, incluida la capacidad de manejar múltiples flujos de entrada, expresiones regulares calculadas, funciones definidas por el usuario y mucho más! En resumen, la actualización lo convirtió en un lenguaje de programación más poderoso.

Awk tiene una implementación diferente. Para asegurarse de que haya una implementación adecuada que ofrezca un enfoque estándar, Paul Rubin escribió gawk en 1986. Funcionó bien con el awk más nuevo.

Aparte de eso, en 1989 System V Release, se agregaron nuevas características. Los desarrolladores también mejoraron sus esquinas oscuras, haciéndolo mejor para que los programadores y usuarios lo usen. El último cambio ocurrió en 1997 cuando awk vio el acceso a la red, lo que brinda a los usuarios la capacidad de resolver problemas de forma remota.

La última reescritura realizada en 2011 cuando John Haque reescribió los aspectos internos de gawk.

Cosas que puede hacer con AWK

A estas alturas, debería estar algo claro de lo que AWK es capaz de hacer. Es un lenguaje de secuencias de comandos de propósito general que le permite manejar el procesamiento de texto. Los usuarios avanzados también pueden usarlo para análisis e informes.

AWK no es como otros lenguajes de programación, ya que se basa en datos, en lugar de un lenguaje de programación procedimental. Eso significa que puede usarlo de manera efectiva para realizar acciones contra la entrada de texto. En resumen, puede usarlo para transformar datos, ingresarlos y también enviarlos como salida estándar.

En resumen, puede usar AWK para realizar operaciones simples como dividir cada línea de entrada en campos, escanear un archivo línea por línea, realizar una acción (es) en las líneas de coincidencia, etc! El comando awk también es útil para informes con formato de procedimiento y transforma archivos de datos. Además, también obtiene acceso a construcciones de programación como bucles y condicionales, operaciones aritméticas y de cadena, y líneas de salida de formato.

Cómo funciona awk

En esta sección, vamos a aprender cómo funciona awk. Es importante saber que awk tiene diferentes implementaciones. Para asegurarnos de que estamos en la misma página, discutiremos y usaremos la implementación de GNU, que se conoce popularmente como gawk. En la mayoría de los casos, el gawk está enlazado simbólicamente al intérprete de awk.

Para obtener una buena comprensión, primero debemos comprender los registros y los campos.

Es bien sabido que awk puede procesar flujos de texto y archivos de datos. Para procesar los datos, la entrada se divide en campos y registros. Para asegurarse de que awk no se sobrecargue, se procesa un registro en cualquier momento hasta que se alcanza el final de la entrada. Además, los registros se dividen en secciones simples utilizando un separador de registros con caracteres. Además, cada registro se separa mediante caracteres de nueva línea. Esto significa que cada línea se puede denominar como un registro.

Puede elegir establecer un nuevo separador de registros utilizando la variable RS.

Luego viene el separador archivado. Como de costumbre, cada registro tiene campos y se separan mediante el separador de campos. El separador de campo puede ser espacios en blanco, tabulaciones, caracteres de nueva línea y espacio. Además, se hace referencia a cada campo mediante el símbolo $, mientras que el número de campo comienza con 1. Esto significa que el primer campo se puede denotar como $ 1 mientras que el segundo campo se denota como $ 2. De esta manera, el n-ésimo campo se puede denotar como $ nf.

El programa awk

El segundo aspecto de awk es el programa awk. Si desea trabajar con awk, debe escribir un programa que permita que el comando ejecute o procese el texto. El programa awk ofrece muchas funcionalidades usando reglas y funciones definidas por el usuario. Las reglas funcionan con un par de acciones o un patrón, y las reglas se separan mediante punto y coma o una nueva línea.

En caso de que se lo pregunte, un programa awk se verá a continuación.

patrón acción patrón acción… 

En resumen, el programa awk funciona haciendo coincidir los registros en función de patrones. Si el patrón se encuentra en el registro, lo procesará. Si no es así, se hace coincidir todo el registro para asegurarse de que algo coincida según las reglas.

Ejemplos de comandos awk

Ahora que tenemos una buena comprensión del comando awk y cómo funciona, es hora de que veamos algunos de los ejemplos del comando awk.

Si nunca ha usado awk antes, es posible que desee saber que awk se puede usar con opciones como las siguientes:

archivo de programa de opciones awk

Las opciones que puede usar con awk incluyen las siguientes:

Ejemplo 1: leer scripts AWK

Una de las formas más comunes de usar awk es leer scripts. Como usuario de Linux, puede crear un script awk usando los marcadores de comillas simples.

Para hacerlo, debe escribir el siguiente comando en la terminal.

$ awk 'print "Bienvenido a Hello, World - AWK tutorial"'

En el ejemplo anterior, lo que escriba, se devolverá a la pantalla misma. El comando continuará ejecutándose hasta que lo finalice presionando CTRL + D.

Ejemplo 2: uso de varios comandos

Otro uso común de awk es usar múltiples comandos. Como usuario, es posible que desee combinar dos comandos awk en uno para obtener el resultado deseado. En este ejemplo, generaremos una cadena y luego reemplazaremos la segunda palabra en la cadena con una nueva entrada.

$ echo "Hola mundo" | awk '$ 2 = "Universo; imprimir $ 0"'

En el ejemplo anterior, primero hicimos eco de "Hola, mundo" en la terminal. A continuación, concatenamos otro comando awk donde reemplazamos la segunda palabra con Universe, y finalmente generamos la cadena, que es Hello Universe.

Ejemplo 3: uso de variable

Las variables le permiten almacenar información y acceder a ellas. Si has usado lenguajes de programación antes, seguro que los conoces. En el caso de awk, lo usa para procesar archivos de texto. Usando las variables, puede acceder a ciertos campos de datos dentro del archivo tal como se muestra a continuación.

Para este propósito, creamos un nuevo archivo de texto, mynewfile, donde ingresamos algunas líneas aleatorias pero hermosas.

A continuación, debe ejecutar el comando, como se muestra a continuación.

awk 'print $ 1' mynewfile

Como puede ver, genera esa variable en particular que muestra ese campo del archivo. Además, debería ver el error que cometí.

Ejemplo 4: preprocesamiento de AWK

Con el comando awk, puede agregar preprocesamiento. Para hacerlo, debe utilizar la palabra clave BEGIN.

Si está leyendo con atención, creamos un nuevo archivo arriba. Intentemos usar el preprocesamiento de awk para mostrar el contenido del archivo.

El comando para ello es el siguiente.

awk 'awk BEGIN print "El contenido del archivo:"> print $ 0', mynewfile

La captura de pantalla de ejemplo anterior no es correcta. Usé "Begin" en lugar de "BEGIN", razón por la cual no ves que se ejecuta la instrucción de impresión. Te dejo esto para que pruebes y veas como va tu resultado!

Ejemplo 5: lectura de un script desde un archivo

Este es complicado. Aquí, puede usar el script awk para leer un archivo.

Creamos un nuevo script que contiene lo siguiente.

imprimir universo de $ 1 "comienza en" $ 6 "

Guardamos el archivo como newscript.

Ahora, ejecute el siguiente comando en la terminal.

$ awk -F: -f script de noticias / etc / passwd

Fascinante, cierto!

Ejemplo 6: posprocesamiento de AWK

A continuación, echamos un vistazo al posprocesamiento de AWK. Funciona de manera similar al preprocesamiento, pero esta vez, el posprocesamiento usa el comando END.

$ awk 'BEGIN print "El contenido del archivo comienza ahora:">> print $ 0>> END print "El archivo termina"' mynewfile

Ejemplo 7: variables definidas por el usuario

También puede usar variables dentro del comando awk sin usar un número o signo de dólar.

A continuación se muestra un ejemplo.

$ awk 'BEGIN test = "Bienvenido a FossLinux Awesome Linux Family" prueba de impresión'

Ejemplo 8: funciones integradas

Los comandos awk también son útiles con sus funciones integradas. Por ejemplo, puede utilizar funciones matemáticas y funciones de cadena.

$ awk 'COMIENZO x - "fossLinux"; imprimir toupper (x) '
$ awk 'COMIENZO x = exp (35); imprimir x '

Ejemplo 9: Dar formato a la impresión

También puede formatear la función printf que viene con awk. Hay muchos modificadores que puedes usar. Por ejemplo, puede usar c para imprimir como una cadena; también puede usar d para un valor entero, y así sucesivamente.

$ awk 'BEGIN x = 200 * 200 printf "El resultado es:% e \ n", x'

Ejemplo 10: comandos estructurados

También puede usar comandos estructurados como if, else, while o for loop. Veamos el siguiente ejemplo para el comando if.

$ awk 'if ($ 1> 20) imprimir $ 2' mynuevoarchivo

Conclusión

Esto nos lleva al final de nuestro tutorial de comandos awk. Entonces, ¿le resultó útil? ¿Lo va a usar para su trabajo?? Comenta a continuación y háznoslo saber.

Cómo usar Xdotool para estimular los clics del mouse y las pulsaciones de teclas en Linux
Xdotool es una herramienta de línea de comandos gratuita y de código abierto para simular clics del mouse y pulsaciones de teclas. Este artículo cubri...
Los 5 mejores productos ergonómicos de mouse de computadora para Linux
¿El uso prolongado de la computadora causa dolor en la muñeca o los dedos?? ¿Sufre de rigidez en las articulaciones y constantemente tiene que dar la ...
Cómo cambiar la configuración del mouse y el panel táctil con Xinput en Linux
La mayoría de las distribuciones de Linux se envían con la biblioteca "libinput" de forma predeterminada para manejar eventos de entrada en un sistema...