1

Sumérgete poco a poco en el uso de AWK

Te comprendo. El pasar de los primeros comandos que nos compartió el profesor Devars a una nomenclatura que mezcla quotes (’’), comillas dobles, llaves ({}), expresiones regulares y todos los signos del teclado prácticamente, puede intimidar un poco.

Aquí te van 10 casos de uso de nivel básico para que empieces a notar la gran utilidad de AWK, que en la obra escrita por Arnold. D. Robbins, lo cita repetidas veces como una utilidad y lenguaje para programar, diseñar funciones, probar algoritmos y proponer bosquejos preliminares a traducirlo a un lenguaje de “bajo nivel” como C++.

1.awk '{print $0}' prueba_awk.txt (Este comando imprime el total de líneas/ columnas de tu texto).

  1. awk '{print $4, $3}' prueba_awk.txt (Va a imprimir columnas/ palabras específicas [$]. En este ejemplo, en caso de un csv, arrojará un output por columnas. Si lo corres para un txt te estaría aislando palabras inconexas que corresponden con el número de palabra solicitado en cada renglón del texto).

  2. awk -F ',' '/tlax/ {print $1, $2, $12}' tiendas.csv (Filtra aquellas líneas donde el texto contenga el string solicitado, y en el output muestra las columnas/ palabras especificadas [$])

  3. awk -F ',' '!/MEX/ {print $1, $2, $12}' tiendas.csv (Imprime las columnas/ palabras especificadas de las líneas donde no se encuentra el string especificado [!])

  4. awk -F ',' '$9 < 5 {print $1, $9, $14}' tiendas.csv (Te proporciona las líneas/ filas que cumplen con el criterio de una variable en este caso, numérica [$9 es el número de columna y <5 solicita que el output contenga aquellas filas donde en la columna $9 el valor sea menor a 5]).

  5. awk '{print NF}' parrafo_awk.txt (Imprime el número de columnas/ palabras presentes por línea. NF significa Number of fields)

  6. awk 'length($0) > 55 {print $0}' parrafo_awk.txt (Imprime las líneas que cumplen con el criterio de N número de caracteres por fila/ renglón)

  7. awk '{print NR ": " $0}' parrafo_awk.txt (Añade al output el numeral de cada línea. NR se refiere a Number of Record)

  8. awk -F ',' 'NR > 1 {suma += $9} END {print "Suma de col9: ", suma}' tiendas.csv (Este comando se compone de 3 partes: 1 condicional, 1 proceso y un producto.

    • NR >1 condiciona a que solo si el # línea es mayor a 1, se aplique el proceso. Esto para excluir el encabezado de la tabla del proceso que viene.
    • El proceso indica sumar a una variable llamada ‘suma’ el valor de cada línea presente en la columna 9 y se termina el proceso explícitamente con el comando END.
    • El producto es un formato de impresión del output con la variable suma contenida)

10, awk 'BEGIN {print "---TIENDAS EJEMPLO---"} {print $0}' tiendas.csv (permite agregar un encabezado al output original al agregar el comando BEGIN)

El maestro Arnold escribió todo un libro sobre desarrollo con AWK y cuenta con mas de 500 páginas!!!, por lo que puedes contar con que es un repertorio robusto de soluciones que puedes proponerte sumar a tu stack.

Saludos y** “Nunca pares de aprender”**


**LECTURA RECOMENDADA: ** GAWK: Effective AWK Programming. Arnold D. Robbins. O’Reilly. 2020.

Escribe tu comentario
+ 2