Linux/Unix Shell Scripting - duda con awk para encontrar el valor mínimo

 
Vista:

duda con awk para encontrar el valor mínimo

Publicado por eskizo (3 intervenciones) el 15/10/2013 11:21:04
hola,
estoy haciendo un script para calcular la media, valor máximo y valor mínimo de unos valores que tengo en un fichero y he hecho algo asi:

# calcula la media de todos los elementos en temporal
awk '{ sum += $1 ;i+=1 } END { print sum / i }' temporal.txt;


# calcula el maximo de todos los elementos en temporal
awk '{ if($1>max) max=$1 } END { print max }' temporal.txt;

ahora pensé que el calculo del mínimo sería equivalente al calculo del maximo

# calcula el minimo de todos los elementos en temporal
#awk '{ if($1<min) min=$1 } END { print min }' temporal.txt;

pero esto no me devuelve nada, es como si no tuviera valor o fuera basura.
he de decir que antes de esto inicializo min con un valor que sé que es mas grande que cualquiera de los que hay en temporal.txt
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de xve
Val: 104
Oro
Ha mantenido su posición en Linux/Unix Shell Scripting (en relación al último mes)
Gráfica de Linux/Unix Shell Scripting

duda con awk para encontrar el valor mínimo

Publicado por xve (309 intervenciones) el 15/10/2013 18:17:06
Hola Eskizo, nos puedes enviar o mostrar el contenido del archivo termporal.txt?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

duda con awk para encontrar el valor mínimo

Publicado por eskizo (3 intervenciones) el 15/10/2013 18:29:56
si, actualmente tiene 7 números, al tratarse de porcentajes todos son menores de 100

34.56
34.56
34.56
64.64
47.45
44.02
38.67

se supone que es una pequeña prueba porque en un futuro tendre que utilizarlo sobre ficheros de muchísimos mas datos, pero el formato seguirá siendo el mismo: un número en cada línea.
de hecho le he pasado el calculo del máximo y media a un fichero con cerca de 500.000 líneas y lo ha hecho todo bien (excepto el mínimo claro)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de xve
Val: 104
Oro
Ha mantenido su posición en Linux/Unix Shell Scripting (en relación al último mes)
Gráfica de Linux/Unix Shell Scripting

duda con awk para encontrar el valor mínimo

Publicado por xve (309 intervenciones) el 15/10/2013 20:11:50
Hola Eskizo, gracias por comentarlo....
El problema que tienes, es que por defecto min no vale, nada, por lo que no hay ninguno inferior.
Lo que tienes que hacer es definir primero la variable min con el valor maximo que es 100.

1
awk 'BEGIN{min=100}{ if($1<min) min=$1 } END { print min }' temporal.txt;

Espero que te sirva.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

duda con awk para encontrar el valor mínimo

Publicado por eskizo (3 intervenciones) el 16/10/2013 10:06:57
era eso justamente lo que me pasaga, muchas gracias ;)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar