Está en la página 1de 36

Lenguajes de

programacin:
AWK
Damian Diaz Devivero
Luis Alejandro Arguelles
Ricardo Larrahondo
William Yair Mayorga
Introduccin
Varios tipos de tareas ocurren repetidamente cuando se
trabajan con archivos de texto. Construir programas de
un solo uso para estas tareas en lenguajes como C,
C++, o Java, consume tiempo que se requiere para
otras tareas y es inconveniente. Estos trabajos son
normalmente ms fciles al usar el lenguaje AWK.
Orgenes
Fue una de las primeras herramientas que aparecieron
en Unix en la versin tres.
El nombre de AWK esta derivado de los apellidos de
sus autores: Alfred V. Aho, Meter J. Weinberger y Brian
W. Kernighan.
La primera versin de este lenguaje apareci en 1977
en 1985 se lanz una nueva versin hacindolo ms
poderoso.


Caractersticas
Pertenece a los paradigmas de
programacin imperativa y programacin
orientada por eventos.
Permite la administracin de pequeas y
personales bases de datos
Se pueden generar algoritmos que
posteriormente se adaptan a otros
lenguajes.

Implementaciones
Entre las diferentes implementaciones de AWK tenemos:
awk, GNU Awk, mawk, nawk, MKS AWK, Thompson
AWK (compilador), Awka (compilador)

Para la presentacin y los ejemplos utilizaremos la
implementacin GNU Awk (gawk)

Gawk
Paul Robin escribio la implementacin en GNU, gawk, en
1986, Jay Fenlason lo completo, con el apoyo de
Richard Stallman

La documentacin y todo acerca de gawk se encuentra
en su pgina principal:

http://www.gnu.org/software/gawk/gawk.html
Cundo usar AWK?
El lenguaje AWK es muy til para producir
reportes de grandes volmenes de datos, as
como para resumir informacin de la salida
de otros programas de utilidad.
Si nos encontramos escribiendo en AWK un
script de algunas cientas de lneas, debemos
considerar usar otro lenguaje diferente
Ejecucin de programas en gawk
Programas de un solo uso.
awk program input-file1 input-file2


Programas de un solo uso sin archivos de
entrada.
awk program
$ awk "BEGIN { print \"Dont Panic!\" }"


Ejecucin de programas en gawk
Programas largos.
awk -f source-file input-file1 input-file2
BEGIN { print "Dont Panic!" }
awk -f advice
Programas ejecutables.
#! /bin/awk -f
BEGIN { print "Dont Panic!" }
$ chmod +x advice
$ advice


Comentarios en AWK
Los comentarios en AWK comienzan con el
caracter #


Expresiones regulares
Las expresiones regulares en AWK son la
forma de describir conjuntos de strings.
Comienzan y terminan con /

/foo/
Secuencias de escape en
expresiones regulares ( I )


Secuencias de escape en
expresiones regulares ( II )


Operadores en expresiones
regulares ( I )
\ Usar el valor literal de un caracter
^ Detona principio de un String
. Detona cualquier caracter
[ ] Braquet expression
[^...] Complemented braquet expression
| Denota alternativas
Operadores en expresiones
regulares ( II )
( ... ) Operador de agrupamiento
* Operador de repeticin
+ Similar a * pero la expresin precedente
se debe repetir al menos una vez
? Similar a * pero la expresin precedente
debe estar o bien una vez o ninguna
{n, m} Interval expression
Clases de caracteres


Otras secuencias especiales
Collating Symbols: [. .]
Equivalence classes: [= =]
Expresiones en AWK
Son los bloques bsicos de los patrones y
acciones.
Constantes
o Numricas y String
o Nmeros octales y hexadecimales
o Expresiones regulares constantes
Variables

Operadores aritmticos en AWK


Operadores de asignacin aritmtica


True y False en AWK
TRUE Cualquier String no vaco o cualquier
nmero diferente de cero.

FALSE Cero o el string
Operadores de Comparacin


Ejemplos de comparaciones


Expresiones Booleanas
boolean1 && boolean2
boolean1 || booelan2
!boolean1
Expresiones Condicionales
selector ? if-true : if-false
Patrones en AWK
/ expresin-regular /
expresin
pat1, pat2
BEGIN, END
BEGINFILE, ENDFILE
empty
IF- ELSE
if ( condition ) then-body[ else else-body ]


WHILE
while ( condition )
body


DO-WHILE
do
body
while ( cond )
FOR-LOOP
for ( initialization, condition, increment )
body
SWITCH
switch ( expression ){
case value or regex:
case-body
default:
default-body

Otros statements in AWK
break
continue
next
nextfile
exit
Funciones numricas
Definicin de funciones
function name( [ parameter list ] ){
body
}
Bibliografa
GAWK: Effective AWK programming, Edition
4.1, April 2014. Arnold D. Robbins
The AWK programming Language. 1988.
Alfred V. Aho, Brian W. Kernighan, Peter J.
Weingerber
PREGUNTAS ?

También podría gustarte