You are on page 1of 3

Informe de Laboratorio

Tema:
AWK
Objetivo de aprendizaje
-

Identificar la sintaxis y estructura del lenguaje de programacin AWK

Mquinas, herramientas o equipos


-

Ubuntu 16.04 corriendo en una mquina virtual.


Software de virtualizacin VirtualBox.

Marco Terico
AWK es un lenguaje de programacin diseado para procesar datos basados en texto, ya sean
ficheros o flujos de datos. El nombre AWK deriva de las iniciales de los apellidos de sus autores:
Alfred Aho, Peter Weinberger, y Brian Kernighan. awk, cuando est escrito todo en minsculas,
hace referencia al programa de Unix o Plan 9 que interpreta programas escritos en el lenguaje de
programacin AWK.
AWK es ejemplo de un lenguaje de programacin que usa ampliamente el tipo de datos de listas
asociativas (es decir, listas indexadas por cadenas clave), y expresiones regulares. El poder,
brevedad y limitaciones de los programas de AWK y los guiones de sed inspiraron a Larry Wall a
escribir Perl. Debido a su densa notacin, todos estos lenguajes son frecuentemente usados para
escribir programas de una lnea.
AWK fue una de las primeras herramientas en aparecer en Unix (en la versin 3) y gan
popularidad como una manera de aadir funcionalidad a las tuberas de Unix. La implementacin
de alguna versin del lenguaje AWK es estndar en casi todo sistema operativo tipo unix moderno.
AWK es mencionado en las Single UNIX Specification (especificaciones bsicas de unix) como una
de las utilidades necesarias de todo sistema operativo Unix. Se pueden instalar implementaciones
de AWK en casi todos los dems sistemas operativos.
Desarrollo de la prctica
Estructura de los programas escritos en AWK
AWK utiliza un archivo o emisin de rdenes y un archivo o emisin de entrada. El primero indica
como procesar al segundo. El archivo de entrada es por lo general texto con algn formato que
puede ser un archivo o bien la salida de otro programa.
La sintaxis general para awk utiliza el siguiente patrn:
awk 'expresin-regular { orden }'
1

Cuando se utiliza awk, ste examina el archivo de entrada y ejecuta la orden cuando encuentra la
expresin regular especificada.
El siguiente modelo ejecutara la orden al inicio del programa y antes de que sean procesados los
datos del archivo de entrada:
awk 'BEGIN { orden }'
El siguiente modelo ejecutara la orden al final del programa y despus de que sean procesados los
datos del archivo de entrada:
awk 'END { orden }'
El siguiente modelo ejecutara la orden por cada una de las lneas del archivo de entrada:
awk '{ orden }'
Procedimientos
A continuacin, se mostrarn ejemplos del uso de AWK.
Ejecute lo siguiente para especficar que al inicio se imprima en la salida la frase "Hola mundo" y se
termine inmediatamente el procesamiento.
awk 'BEGIN { print "Hola mundo"; exit }'
Lo anterior deber devolver una salida como la siguiente:
Hola mundo
Ejecute lo siguiente para generar al archivo prueba.txt:
echo -e "Columna1\tColumna2\tColumna3\tColumna4\n" > ejemplo.txt
Visualice el contenido del archivo prueba.txt con cat:
cat ejemplo.txt
Devolver el siguiente contenido:

Columna1

Columna2

Columna3

Columna4

Ejecute lo siguiente para que awk slo muestre la columna 1 y la columna 3:


awk '{ print $1, $3}' ejemplo.txt
La salida devolver lo siguiente:
Columna1 Columna3

Ejecute lo siguiente para que awk slo muestre las lneas con ms de 35 caracteres en el archivo
/etc/crontab:
awk 'length > 35' /etc/crontab
La salida devolver algo similar a lo siguiente:
# |

.---------- day of month (1 - 31)

# |

.------- month (1 - 12) OR jan,feb,mar,apr ...

# | | | | .---- day of week (0 - 6) (Sunday=0 or 7) OR


sun,mon,tue,wed,thu,fri,sat
# *

* user-name

command to be executed

Conclusiones y recomendaciones

A AWK se le dan dos piezas de datos: un fichero de rdenes y un fichero primario de


entrada.
AWK fue creado como un reemplazo a los algoritmos escritos en C para mtodos de
anlisis de texto.
AWK es especialmente til para hacer procesamiento de texto y extraccin de datos en
entornos tipo Unix.

Bibliografa
[1]"UNIX Tutorial", www.tutorialspoint.com, 2016. [Online]. Available:
http://www.tutorialspoint.com/unix/.

You might also like