Bueno aqui les dejare un poco de info que les ayudara a programar en awk. En mi caso no sabia usarlo muy bien porque no encontraba mucha información sobre este lenguaje, este tutorial me ayudo para poder realizar algunos programas que despues subire.
Un poco de información…
El lenguaje Awk nos puede ser muy útil para la modificación de archivos, realizar bases de datos, para realizar búsquedas y añadir campos en bases de datos. El lenguaje Awk fue diseñado para que se trabaje con archivos estructurados y patrones de texto.
Este lenguaje es muy útil en inventarios, listas de correo y bases de datos simples. Muchos programas realizados en Awk son de una línea de longitud y aunque parezca algo ilógico son de mucha utilidad.
Y como un poco de información el nombre de awk se debe a las iniciales de sus diseñadores: Alfred V. Aho, Peter J. Weinberger y Brian W. Kernighan.
Empecemos a explicar….
Los programas de awk consisten en series de reglas. Cada regla especifica un patrón a buscar, y una acción a realizar cuando en el registro de entrada se halle dicho patrón.
Una regla es un patrón a la que le sigue una acción. Las acciones se encierran entre llaves para que se distingan de los patrones.
patrón {acción}
Ejecutar awk...
Existen varias formas para ejecutar los programas de awk:
Si el programa que vamos a ejecutar, resulta mucho más fácil incluir el programa al ejecutarlo:
Awk ‘ programa’ input-file1 input-file2 ….
Awk ‘ programa’ input-file1 input-file2 ….
Programa consiste en los patrones y acciones que se ejecutaran.
Si el programa es más largo, es de mayor facilidad tenerlo en un fichero:
awk –f program-file input-file1 input file2 …
awk –f program-file input-file1 input file2 …
También se puede utilizar awk sin ficheros de entrada de la siguiente manera:
awk ‘programa ’
awk ‘programa ’
Aquí cualquier cosa que se teclee será tomado como datos de tu programa.
Con esta instrucción awk aplica el programa en entrada estándar, y terminara hasta que indiques el final con las teclas Control-d
Si se tienen programas grandes lo que conviene es tener el programa en un fichero separado:
Awk –f fichero-fuente input-file1 input-file2 …
La instrucción ‘ -f’ es para que awk obtenga el programa del fichero-fuente
Las entradas se leen en unidades llamadas registros, y son procesados por las reglas uno a uno.
Sintaxis…
/foo/ {print $0}
à awk lo que hará será buscar líneas que tengan ‘foo’ y seran impresas, porque print $0 imprime la linea actual# este es un comentario
à Los comentarios en awk se escriben con un # al principio de la línea.BEGIN { print “uno/ndos/ntres” }
à
Imprimira lo siguiente:
uno
dos
tres
Cuando se tiene un documento con la siguiente instrucción se imprime los 2 primeros campos de cada registro de entrada
‘{print $1, $2 } ‘ inventario
y la salida seria à pato 2
perro 1
gato 3
‘{ print “esto va al principio: “ $1 }’Lista
à
con esto imprimirá en el primer registro
Del archivo Lista. Como salida seria:
Esto va al principio: Hola
Para llamar funciones se escribe el nombre de la función seguido de la lista de argumentos entre paréntesis:
sqrt(x**2 + y**2)
à
un solo argumento
funciona(y, x)
à
2 argumentos
rand()
à
sin argumentos
if (x % 2 == 0)
print “x es par”
à
sentencia if
else
print “x es impar”
{i = 1
while (i <= 3) {
print $i
à
sentencia while
i++
}
}
{ i = 1
do {
à
sentencia do-while
print $0
i++
} while (i <= 10)
}
{ for (i = 1; i <= 3; i++)
à
sentencia for
imprime
los primeros 3 campos de c/ registro
Print $i
de entrada
}
{
if ( $1 > max)
max = $1
arr[$1] = $0
à
ejemplo de un areglo
la primera regla guarda el numero
}
de linea mas alto leido y guarda
END {
cada linea
for ( x = 1; x <= max; i++)
La segunda regla imprime todas
print arr[x]
las lineas
}
for (i in texto)
à
elimina elementos de un arreglo
delete texto[i]
function hola ()
à
declaración de una función hecha por usuario
{
Print “ hola a todos”
}
{ hola() }
à
llamada de función
Bueno aquí les dejo el link de donde descargue el tutorial espero les sirva. En el tutorial viene mucho mas información sobre operadores, otras maneras de imprimir, mas información de arreglos....
http://www.loquefaltaba.com/documentacion/Manual_Awk_castellano.pdf
Espero les sea de gran ayuda... (Y)
Bien. Cinco puntos para el lab de lenguajes.
ReplyDelete