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

TicWatch Atlas

TicWatch Atlas se presenta como el reloj inteligente de los aventureros

Mobvoi, conocida por su línea de relojes inteligentes TicWatch, ha presentado su última incorporación: el TicWatch Atlas. Este nuevo modelo, diseñado para resistir en los entornos más hostiles, promete revolucionar el mercado de los relojes inteligentes orientados a la aventura. Con un diseño robusto y una serie de características avanzadas, el TicWatch Atlas apunta a

TucomunidApp

Tasación de casas con TucomunidApp: más allá de una venta

Cuando se habla de tasación de casas, la mayoría de las personas asocian automáticamente este proceso con la compraventa del inmueble. Sin embargo, contar con una valoración actualizada de una propiedad tiene múltiples ventajas que van mucho más allá de una simple transacción. Entender el verdadero valor de una vivienda es crucial no solo para

Rakuten TV Enterprise Services

Rakuten TV abre un nuevo negocio para el mercado B2B

Rakuten TV, una de las principales plataformas de streaming en Europa, ha presentado en el evento Mipcom su nueva apuesta estratégica: Rakuten TV Enterprise Services. Este anuncio marca un hito importante en la evolución de la empresa, que busca expandir sus servicios en el mercado del entretenimiento digital, facilitando la creación, gestión y monetización de

tecnología 6G

La tecnología 6G podría empezar a tener impacto entre 2029 y 2030

Cada vez se habla más de la tecnología 6G. El tiempo pasa y cada año es un mundo para el desarrollo tecnológico. Muchos están en ello y de esta próxima conectividad se desprenden grandes oportunidades. Es lo que opinan todos los expertos. Uno de ellos, Daniel Camps, director del área de investigación en redes inalámbricas

ThinkPhone25

Móviles para empresas: Motorola quiere ser una referencia con su nuevo ThinkPhone25

Tradicionalmente, los móviles para empresas han sido siempre bastante básicos en cuanto a funcionalidades. Simplemente se han utilizado como meras herramientas para la comunicación entre equipos. Sin embargo, las últimas tecnologías que empiezan a incorporar la mayoría de marcas hace que las características y componentes de estos dispositivos sean cada vez más examinadas desde el