* Cuenta la leyenda que Emilio J. Padr�n ([EMAIL PROTECTED]) escribi�:
> �Gracias pedazo CRACK!
> Me ha venido de perlas tu soluci�n, con lo que ya me ahorro los
> problemas que estaba teniendo con lo de pasar valores entre shells.
> Finalmente me ha quedado as� (a lo mejor es un poco chapuza, pero no
> suelo escribir muchos scripts y nunca hab�a usado awk):
> 
> -------------------------------------------
> #/bin/sh
> 
> ETIQUETA="TOTAL TIME"
> 
> grep -h "${ETIQUETA}" ${1:-*} | awk '
> BEGIN{ MAX="nada"; MIN="nada"; CONT=0; MEDIA=0; }
> { if ( (MAX == "nada") || ( MAX < $3 ) ) MAX = $3; }
> { if ( (MIN == "nada") || ( MIN > $3 ) ) MIN = $3; }
> { CONT ++; }
> { MEDIA += $3 }
> END{ print "min = "MIN; print "max = "MAX; print "media = "MEDIA /
> CONT; }'
> -------------------------------------------
> 
> y.... �Funciona!
> 
> Una cosilla, eso s�, cuando alguna de las l�neas que el grep le pasa
> al awk no tiene la columna que necesito (la 3 en este caso), el c�lculo
> del m�nimo no funciona bien (son n�meros reales, y supongo que awk
> debe de considerar por ejemplo: 0.89234 > null). A ver c�mo lo
> soluciono, pero no me es vital.
> 
> 
> Much�iiiisimas gracias por el cable.
> 
> Saludos.

Te lo corrijo y te tiro otro dato:
awk '
BEGIN{ MAX="nada"; MIN="nada"; CONT=0; MEDIA=0; ETIQUETA="TOTAL TIME"}
$0 ~ ETIQUETA{ 
if ( (MAX == "nada") || ( MAX < $3 ) ) MAX = $3; 
if ( (MIN == "nada") || ( MIN > $3 ) ) MIN = $3; 
CONT ++; 
MEDIA += $3 
}
END{ print "min = "MIN; print "max = "MAX; print "media = "MEDIA / CONT; }' 
${1:-*} 

No te garantizo que funcione, pero te recomiendo una lectura profunda
de la pagina man
-- 
Saludos,

Germ�n

Responder a