Nociones de programación en awk - Computo con registros

9 - Computo con registros

[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


¡Vamos a modificar el programa 'contabil1.awk' para procesar solo los registros de consumo de luz, vamos a mejorar el formato de salida, vamos a incluir un contador de registros seleccionados, un contador de consumo de luz, y al final obtendremos el consumo total y el consumo promedio de luz. Lo llamaremos 'contabil2.awk'

|| BEGIN { FS="\|" ; cont_reg_luz=0; cont_importe_luz=0; } $2 ~ /LUZ/ { cont_reg_luz = cont_reg_luz + 1 ; cont_importe_luz = cont_importe_luz + $3 ; printf ("%3d, %3d, %s, %s, %s, %10d\n", NR, cont_reg_luz, $1, $2, $3, cont_importe_luz); } END { printf ("Consumo promedio = %d\n", cont_importe_luz / cont_reg_luz) ; } ||


Vamos a ejecutar este ejemplo y vamos a ver su salida

|| $ awk -f contabil2.awk < contabil.dat 5, 1, 05-01-2000, LUZ , -15797, -15797 9, 2, 25-02-2000, LUZ , -12475, -28272 16, 3, 02-05-2000, LUZ , -11449, -39721 23, 4, 04-07-2000, LUZ , -12403, -52124 29, 5, 04-09-2000, LUZ , -12168, -64292 Consumo promedio = -12858 ||


Los datos que estamos usando para el ejemplo están ordenados por fechas. Vamos a obtener un informe con un campo más que será el saldo de la cuenta. Para ello editamos un fichero que llamaremos 'contabil3.awk'.

|| BEGIN { FS="\|" ; cont_importe=0; } /[0-9][0-9]\-[0-9][0-9]\-[0-9][0-9][0-9][0-9]\|/ { cont_importe = cont_importe + $3 ; printf ("%3d, %s, %s, %s, %10d\n", NR, $1, $2, $3, cont_importe); } ||


Vamos a ejecutar este ejemplo y vamos a ver su salida

|| $ awk -f contabil3.awk < contabil.dat 3, 01-01-1999, - , 96, 96 4, 16-12-1999, AGUA , -14650, -14554 5, 05-01-2000, LUZ , -15797, -30351 6, 24-01-2000, GAS , -34175, -64526 7, 27-01-2000, INGRESO , 141200, 76674 8, 01-02-2000, MENS , -96092, -19418 9, 25-02-2000, LUZ , -12475, -31893 10, 01-03-2000, MENS , -96092, -127985 11, 06-03-2000, INGRESO , 101300, -26685 12, 01-04-2000, MENS , -96092, -122777 13, 06-04-2000, AGUA , -15859, -138636 14, 07-04-2000, INGRESO , 134000, -4636 15, 01-05-2000, MENS , -98975, -103611 16, 02-05-2000, LUZ , -11449, -115060 17, 09-05-2000, INGRESO , 95000, -20060 18, 23-05-2000, GAS , -21428, -41488 19, 25-05-2000, GAS , -16452, -57940 20, 01-06-2000, MENS , -98975, -156915 21, 07-06-2000, INGRESO , 130000, -26915 22, 01-07-2000, MENS , -98975, -125890 23, 04-07-2000, LUZ , -12403, -138293 24, 07-07-2000, AGUA , -5561, -143854 25, 10-07-2000, INGRESO , 99000, -44854 26, 24-07-2000, GAS , -11948, -56802 27, 01-08-2000, MENS , -98975, -155777 28, 10-08-2000, INGRESO , 122355, -33422 29, 04-09-2000, LUZ , -12168, -45590 30, 10-09-2000, INGRESO , 129000, 83410 31, 19-09-2000, AGUA , -10529, 72881 32, 28-09-2000, GAS , -2620, 70261 33, 01-10-2000, MENS , -98975, -28714 34, 10-10-2000, INGRESO , 112000, 83286 ||
[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.