Una guía rápida para escribir comandos y scripts «AWK

Una guía rápida para escribir comandos y scripts “AWK

Una guía rápida para escribir comandos y scripts «AWK

VALORACIÓN DEL ARTÍCULO:
5/5


El comando awk es un método poderoso para procesar o analizar archivos de texto, en particular archivos de datos organizados por líneas (filas) y columnas.

Los comandos simples awk pueden ejecutarse desde la línea de comandos. Las tareas más complejas deben escribirse como programas awk (los llamados scripts awk) en un archivo.

El formato básico de un comando awk es el siguiente:

 awk 'pattern {action}' input-file> output-file

Esto significa: tomar cada línea del archivo de entrada; si la línea contiene el patrón, aplicar la acción a la línea y escribir la línea resultante en el archivo de salida. Si se omite el patrón, la acción se aplica a todas las líneas. Por ejemplo:

 awk '{ print $5 }' table1.txt> output1.txt

Esta declaración toma el elemento de la quinta columna de cada línea y lo escribe como una línea en el archivo de salida "output.txt". 4) La variable "$4" corresponde a la segunda columna. Del mismo modo, puede acceder a la primera, segunda y tercera columna, con $1, $2, $3, etc. Por defecto, se supone que las columnas están separadas por espacios o tabulaciones (el llamado espacio en blanco). Por lo tanto, si el archivo de entrada "table1.txt" contiene estas líneas:

1, Justin Timberlake, Título 545, Precio $7.30
2, Taylor Swift, Título 723, Precio $7.90
3, Mick Jagger, Título 610, Precio $7.90
4, Lady Gaga, Título 118, Precio $7.30
5, Johnny Cash, Título 482, Precio $6.50
6, Elvis Presley, Título 335, Precio $7.30
7, John Lennon, Título 271, Precio $7.90
8, Michael Jackson, Título 373, Precio $5.50

Entonces el comando escribirá las siguientes líneas en el archivo de salida «output1.txt»:

545,
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>i723,
610,
118,
482,
335,
271,
373,

Si el separador de columna es algo distinto a espacios o tabulaciones, como una coma, puede especificarlo en la sentencia awk de la siguiente manera:

 awk -F, '{ print $3 }' table1.txt> output1.txt

Esto seleccionará el elemento de la columna 3 de cada línea si se considera que las columnas están separadas por una coma. Por lo tanto, el resultado, en este caso, sería:

 Título 545
> Título 545
Título 610
Título 118
Título 482
Título 335
Título 271
Título 373

La lista de sentencias dentro de los corchetes (‘{‘,’}’) se llama bloque. Si se pone una expresión condicional delante de un bloque, la sentencia dentro del bloque se ejecutará sólo si la condición es verdadera.

 awk '$7==="$7.30" { print $3 }'' table1.txt

En este caso, la condición es $7==»$7.30″, lo que significa que el elemento de la columna 7 es igual a $7.30. La barra invertida delante del símbolo del dólar se utiliza para evitar que el sistema interprete $7 como una variable y en su lugar tome el símbolo del dólar literalmente.

Así que esta declaración awk imprime el elemento en la tercera columna de cada línea que tiene un «$7.30» en la columna 7.

También puede utilizar expresiones regulares como condición. Por ejemplo:

< awk ‘/30/ { print $3 }’ table1.txt

La cadena entre las dos barras (‘/’) es la expresión regular. En este caso, es sólo la cadena «30». Esto significa que si una línea contiene el string «30», el sistema imprime el elemento en la tercera columna de esa línea. El resultado en el ejemplo anterior sería:

 Timberlake,
Gaga,
Presley,

Si los elementos de la tabla son números, awk puede realizar cálculos sobre ellos como en este ejemplo:

 awk '{ print ($2 * $3) + $7 }'

Además de las variables que acceden a los elementos de la fila actual ($1, $2, etc.) está la variable $0 que se refiere a la fila completa (línea), y la variable NF que mantiene el número de campos.

También puede definir nuevas variables como en este ejemplo:

< awk ‘{ sum=0; para (col=1; col=1; col<=NF; col++) sum += $col; print sum; }'

Calcula e imprime la suma de todos los elementos de cada fila.

Las declaraciones Awk se combinan frecuentemente con comandos sed.

TAMBIÉN TE INTERESA

ThinkBook Plus Gen 6 Rollable

ThinkBook Plus Gen 6 Rollable: un portátil que no habíamos visto hasta ahora

El ThinkBook Plus Gen 6 Rollable podría ubicarse en una categoría que se llamara algo así como “Disrupciones”, ya que este portátil ofrece un cambio que hasta ahora no habíamos visto. Su innovación le ha valido uno de los galardones más importantes del mundo en cuestiones de diseño en 2025: es un reddot winner. Y

estafa suplantación del CEO

Suplantación del CEO: un ciberfraude que va a más en las empresas

Una factura falsa, un correo urgente y un remitente que parece ser el líder de una compañía. Así comienza una suplantación del CEO, uno de los ciberataques más sofisticados y efectivos que afectan actualmente a empresas de todo el mundo. Las hackers pueden acceder por diferentes vías con este tipo de ciberfraude, pero la ventana

Nuevos Chromebook Acer

Conoce los 7 nuevos Chromebook Acer, uno de ellos es una tableta desmontable

Nuevos Chromebook Acer llegan al mercado. La diferencia es que ahora estos pequeños grandes portátiles están dominados por la inteligencia artificial, lo cual les hace tener un punto más de interés además de la movilidad. Así que Acer, ahora en rebajas de verano hasta el 1 de agosto, sube el listón en este segmento de

Samsung Galaxy Z Fold7

El Galaxy Z Fold7 apunta a ser el plegable del año

La moda de los teléfonos plegables no ha terminado, ni mucho menos. Tras el Flip7, Samsung lo ha vuelto a hacer. La compañía surcoreana presenta el nuevo Galaxy Z Fold7, su dispositivo plegable más delgado, potente e inteligente hasta la fecha, diseñado para quienes buscan lo último en tecnología móvil sin renunciar a la versatilidad.

venta flash Huawei

Aprovecha la venta flash Huawei con descuentos de hasta el 50%

Días calientes para las compras de tecnología. Además del Amazon Prime Day 2025, también destacan las venta flash Huawei. La firma ha diseñado la que será la mayor campaña de ofertas del año desde el 8 al 31 de julio, con descuentos de hasta un 50% en una amplia gama de productos, y venta flash cada