Para calcular cuántas horas por día trabajo, necesité una especie de sum(horas) GROUP BY día a partir del siguiente input de horas por tarea:
$ donetasks
2011-05-17 1.00 FrancesGO2 -> Schedule
2011-05-17 4.50 FrancesGO2 -> Deployment
2011-05-17 1.50 FrancesGO2 -> Sysadmin, environments
2011-05-17 0.50 FrancesGO2 -> Analisis Funcional
2011-05-17 0.50 FrancesGO2 -> Meetings
2011-05-17 1.00 FrancesGO2 -> Tooling
2011-05-18 0.50 FrancesGO2 -> Deployment
Decidí que el Aho, Weinberger y Kernighan vendrían al rescate. Hice un script que llamé sumby que toma los índices de dos columnas: por cuál agrupar, y cuál sumar:
awk -v group=$1 -v sum=$2 '
{ bag[$group]+=$sum }
END { for (val in bag) { print val ": " bag[val] } }
'
Lo uso así:
$ donetasks | sumby 1 2
2011-05-17: 9
2011-05-18: 0.5
No hay comentarios:
Publicar un comentario