Lenguaje De Programacion Awk
Enviado por ariammm • 19 de Octubre de 2013 • 1.189 Palabras (5 Páginas) • 323 Visitas
Acerca de AWK.
AWK, cuyo nombre deriva de la primera letra de los apellidos de sus autores Alfred Aho, Peter Weinberger y Brian Kernighan, es un lenguaje de programación que fue diseñado con el objetivo de procesar datos basados sobre texto y una de las primeras herramientas en aparecer en Unix. Utiliza listas en un índice ordenado por cadenas clave (listas asociativas) y expresiones regulares. Es un lenguaje ampliamente utilizado para la programación de guiones ejecutables pues añade funcionalidad a las tuberías en los sistemas operativos tipo POSIX. Está incluido en las instalaciones básicas de prácticamente todas las distribuciones de GNU/Linux.
Estructura de los programas escritos en AWK.
El mandato awk utiliza un archivo o emisión de ordenes y un archivo o emisión de entrada. El primero indica como procesar al segundo. El archivo de entrada es por lo general texto con algún formato que puede ser un archivo o bien la salida de otro mandato.
La sintaxis general utilizada para el mandato awk utiliza el siguiente patrón:
awk 'expresión-regular { orden }'
Cuando se utiliza el mandato awk, éste examina el archivo de entrada y ejecuta la orden cuando encuentra la expresión regular especificada.
El siguiente modelo ejecutaría la orden al inicio del programa y antes de que sean procesados los datos del archivo de entrada:
awk 'BEGIN { orden }'
El siguiente modelo ejecutaría la orden al final del programa y después de que sean procesados los datos del archivo de entrada:
awk 'END { orden }'
El siguiente modelo ejecutaría la orden por cada una de las líneas del archivo de entrada:
awk '{ orden }'
Procedimientos.
A continuación se mostrarán ejemplos del uso de AWK.
El siguiente mandato específica que al inicio se imprima en la salida la frase "Hola mundo" y terminar el procesamiento.
awk 'BEGIN { print "Hola mundo"; exit }'
Lo anterior deberá devolver una salida como la siguiente:
Hola mundo
Si se genera el archivo prueba.txt del siguiente modo:
echo -e "Columna1\tColumna2\tColumna3\tColumna4\n" > ejemplo.txt
Y se visualiza con el mandato cat:
cat ejemplo.txt
Devolverá el siguiente contenido:
Columna1 Columna2 Columna3 Columna4
Si se utiliza el mandato awk para que solo muestre la columna 1 y la columna 3 del siguiente modo:
awk '{ print $1, $3}' ejemplo.txt
La salida devolverá lo siguiente:
Columna1 Columna3
Si se utiliza el mandato awk para que solo muestre la columna 3 y la columna 1, en ese orden, del siguiente modo:
awk '{ print $3, $1}' ejemplo.txt
La salida devolverá lo siguiente:
Columna3 Columna1
Si se añaden datos al archivo ejemplo.txt del siguiente modo:
echo -e "Dato1\tDato2\tDato3\tDato4\n" >> ejemplo.txt
echo -e "Dato5\tDato6\tDato7\tDato8\n" >> ejemplo.txt
echo -e "Dato9\tDato10\tDato11\tDato12\n" >> ejemplo.txt
Y se visualiza con el mandato cat:
cat ejemplo.txt
Devolverá el siguiente contenido:
Columna1 Columna2 Columna3 Columna4
Dato1 Dato2 Dato3 Dato4
Dato5 Dato6 Dato7 Dato8
Dato9 Dato10 Dato11 Dato12
Si se utiliza nuevamente el mandato awk para que solo muestre la columna 1 y la columna 3 del siguiente modo:
awk '{ print $1, $3 }' ejemplo.txt
La salida devolverá lo siguiente:
Columna1 Columna3
Dato1 Dato3
Dato5 Dato7
Dato9 Dato11
Si se utiliza el mandato awk del siguiente modo para que solo muestre solo la línea cuya columna contenga la expresión regular Dato5:
awk '/Dato5/ { print }' ejemplo.txt
La salida devolverá lo siguiente:
Dato5 Dato6 Dato7 Dato8
Si
...