Tutorial Awk como comando y como lenguaje de programación
Este tutorial es una breve introducción al uso de awk como comando y como lenguaje de programación en GNU/Linux
Palabras claves: awk, script.
Awk no es solo un programa utilitario sino también un lenguaje de programación, lo que lo hace útil a la hora de crear scripts también. Fue diseñado para extraer datos por lo que aquí veremos algunos ejemplos.
Veamos el primero. Abrimos un terminal y escribimos:
dpkg -l | awk ' {print $2} ' > instalados.txt
En este caso awk creará un archivo llamado instalados.txt con un listado de la segunda columna del comando dpkg -l que muestra el nombre de los programas instalados en nuestro ordenador.
Si queremos imprimir todas las columnas:
dpkg -l | awk ' {print $0} ' > instalados.txt
Otro ejemplo, en este caso programando el clásico "Hola Mundo":
awk "BEGIN { print \"Hola Mundo \" }"
Para imprimir nueve números aleatorios:
awk 'BEGIN { for (i = 1; i <= 9; i++)
print int(101 * rand()) }'
Contar la frecuencias de las palabras del archivo instalados.txt:
awk 'BEGIN { FS="[^a-zA-Z]+"} \
{ for (i=1; i<=NF; i++) words[tolower($i)]++ } \
END { for (i in words) print i, words[i] }' instalados.txt
Más ejemplos en: http://www.linux-es.org/node/31
El manual completo: http://www.gnu.org/software/gawk/manual/gawk.html (idioma inglés)