GNU/Linux >> Tutoriales Linux >  >> Linux

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 a través de 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 leerlos realmente; de lo contrario, es simplemente confuso.

Por ejemplo, si está leyendo algunos datos organizados en forma tabular, quiere algunas columnas, no quiere 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 garantizar que haya una implementación adecuada que ofrezca un enfoque estándar, Paul Rubin escribió gawk en 1986. Funcionó bien con el nuevo awk.

Aparte de eso, en 1989 System V Release, se agregaron nuevas funciones. Los desarrolladores también mejoraron sus rincones oscuros, mejorando su uso para programadores y usuarios. El último cambio ocurrió en 1997 cuando awk vio el acceso a la red, brindando a los usuarios la capacidad de resolver problemas de forma remota.

La última reescritura se hizo en 2011 cuando John Haque reescribió las partes internas de Gawk.

Cosas que puedes hacer con AWK

A estas alturas, debería quedar algo claro de lo que es capaz AWK. 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 está basado en datos, en lugar de un lenguaje de programación de procedimientos. 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 acciones en las líneas de coincidencia, ¡y así sucesivamente! 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 condicionales y bucles, cadenas y operaciones aritméticas 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 utilizaremos la implementación de GNU, que se conoce popularmente como gawk. En la mayoría de los casos, el gawk está vinculado al intérprete 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 garantizar que awk no se vea abrumado, se procesa un registro en un momento dado hasta que se alcanza el final de la entrada. Además, los registros se dividen en secciones simples mediante un separador de registros mediante 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 optar por establecer un nuevo separador de registros utilizando la variable RS.

Luego viene el separador archivado. Como es habitual, cada registro tiene campos y se separan con el separador de campos. El separador de campo puede ser espacios en blanco, tabulaciones, caracteres de nueva línea y espacios. Además, se hace referencia a cada campo con el símbolo $, mientras que el número de campo comienza con 1. Esto significa que el primer campo se puede indicar como $1 mientras que el segundo campo se indica como $2. De esta forma, el campo n se puede indicar 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 mucha funcionalidad 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 con punto y coma o salto de línea.

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

pattern { action }
pattern { action }
....

En resumen, el programa awk funciona haciendo coincidir los registros en función de los patrones. Si el patrón se encuentra en el registro, lo procesará. De lo contrario, se compara 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, ahora es el momento 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:

awk options program file

Las opciones que puede usar con awk incluyen las siguientes:

  • – f file:Se utiliza para especificar el archivo que contiene el script awk
  • -F fs:Se utiliza para especificar el separador de archivos.
  • -v var=valor:Se utiliza para declarar una variable.

Ejemplo 1:Leer secuencias de comandos AWK

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

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

$awk '{print "Welcome to Hello, World -- AWK tutorial"}'

En el ejemplo anterior, lo que escriba, volverá 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 varios 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 "Hello World" | awk '{$2 = "Universe; print $0"}'

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

Ejemplo 3:uso de variables

Las variables le permiten almacenar información y acceder a ella. 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 AWK

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

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

El comando para ello es el siguiente.

awk 'awk BEGIN {print "The content of the file:"}
> {print $0}' , mynewfile

La captura de pantalla del ejemplo anterior no es correcta. Utilicé "Comenzar" en lugar de "COMENZAR", por lo que no ve la ejecución de la declaración de impresión. ¡Te dejo esto para que pruebes y veas cómo te va el resultado!

Ejemplo 5:Leer secuencia de comandos desde un archivo

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

Creamos un nuevo script que contiene lo siguiente.

{print $1 "universe starts at " $6"}

Guardamos el archivo como un script nuevo.

Ahora, ejecute el siguiente comando en la terminal.

$awk -F: -f newscript /etc/passwd

¡Fascinante, verdad!

Ejemplo 6:posprocesamiento de AWK

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

$ awk 'BEGIN {print "The file content starts now:"}
>
> {print $0}
>
> END {print "The File ends"}' 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 = "Welcome to FossLinux Awesome Linux Family"
print test
}
'

Ejemplo 8:Funciones integradas

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

$ awk 'BEGIN {x - "fossLinux"; print toupper(x)}'
$ awk 'BEGIN {x=exp(35); print x}'

Ejemplo 9:Formato de 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 "The result is: %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) print $2}' mynewfile

Conclusión

Esto nos lleva al final de nuestro tutorial del comando awk. Entonces, ¿lo encontró útil y lo va a usar para su trabajo? Comenta abajo y cuéntanos.


Linux
  1. Comando wc Linux con ejemplos

  2. Comando de clasificación de Linux con ejemplos

  3. Comando Linux Tee con ejemplos

  4. Comando de cabeza de Linux con ejemplos

  5. Comando JQ en Linux con ejemplos

Comando de CD de Linux con ejemplos

Comando de vigilancia de Linux con ejemplos

Comando de espera en Linux con ejemplos

Comando de exportación de Linux con ejemplos

Comando de reinicio en Linux con ejemplos

Comando IP de Linux con ejemplos