Nociones de programación en awk - Pasar valores al script awk

11 - Pasar valores al script awk

[editar]
Tutorial creado por Antonio Castro Snurmacher (Madrid 01/01/2000).. Extraido de: http://www.mononeurona.org/index.php?idp=462
27 de Octubre de 2005
En ocasiones puede resultar interesante poder pasar algún valor al script awk. Vamos a modificar el programa anterior para que muestre los registros con un importe superior a un valor que pasaremos por parámetro.

Edite el siguiente fichero que llamaremos 'contabil5.awk'

|| BEGIN { FS="\|" ; } /[0-9][0-9]\-[0-9][0-9]\-[0-9][0-9][0-9][0-9]\|/ { if ( $3 >= minimo && $3 <= maximo ) { printf ("%3d, %s, %s, %s\n", NR, $1, $2, $3); } } ||


Vamos a ejecutar este ejemplo pasando y vamos a ver su salida

|| $ awk -f contabil5.awk minimo=100000 maximo=120000 < contabil.dat 11, 06-03-2000, INGRESO , 101300 34, 10-10-2000, INGRESO , 112000 ||


Hay que advertir que el paso de parámetros equivale a definir una variable y a asignar un valor pero esto valor no será accesible hasta después de leer el primer registro. Si el valor pasado como parámetro tuviera que ser accesible en la sección BEGIN habría que usar la opción -v previo al paso del parámetro.

Repetiremos el ejemplo pasando el delimitador del registro que usaremos en la sección BEGIN.

Edite el siguiente fichero que llamaremos 'contabil6.awk'

|| BEGIN { FS = delimitador ; } /[0-9][0-9]\-[0-9][0-9]\-[0-9][0-9][0-9][0-9]\|/ { if ( $3 >= minimo && $3 <= maximo ) { printf ("%3d, %s, %s, %s\n", NR, $1, $2, $3); } } ||


Vamos a ejecutar este ejemplo pasando valores y vamos a ver su salida

|| $ awk -f contabil6.awk minimo=100000 maximo=120000 deliminador='|' < contabil.dat ||


Vemos que no hemos obtenido el resultado esperado.

Vamos a volver a ejecutar este ejemplo pasando el valor del delimitador con la opción -v y vamos a ver su nueva salida

|| $ awk -v delimitador='|' -f contabil6.awk minimo=100000 maximo=120000 < contabil.dat 11, 06-03-2000, INGRESO , 101300 34, 10-10-2000, INGRESO , 112000 ||
[editar]

4 opiniones

bla,bla ,bla

no le entendi
no me ayudo

la informacion es muy poca no me sirve de nada
Mas o menos.

Hola me parece importante.
Operadores y expresiones.

No hay suficiente investigación.

Tutoriales relacionados con 'Nociones de programación en awk'

La palabra 'awk' se usa tanto para referirse a un lenguaje de manipulación de ficheros... Más »
Este documento Cómo está dedicado a todos los (pronto ex-)usuarios de DOS y Windows que... Más »

Autor y licencia de 'Nociones de programación en awk'


Tutorial de Antonio Castro Snurmacher (Madrid 01/01/2000).. Extraido de: http://www.mononeurona.org/index.php?idp=462 CopyLeft
Este trabajo está licenciado bajo la Creative Commons License. 1999-2005 © :: MonoNeurona.org ::
Este contenido ha sido recopilado por el equipo de Wikilearning. Todo el contenido recopilado se ha obtenido respetando y comunicando en nuestro site la licencia de cada fuente.
Wikilearning tiene permiso expreso por escrito de los autores para publicar los contenidos que ha extraído de otras webs, incluyendo su uso comercial.