systemadmin.es > Programación > Máximo, mínimo y media con awk

Máximo, mínimo y media con awk

Mediante awk podemos calcular la media, el máximo y el mínimo de una secuencia de números.

Vamos a suponer la siguiente secuencia generada con seq, pero podría ser cualquier otra como por ejemplo la salida de un sar:

# seq 1 10
1
2
3
4
5
6
7
8
9
10

Mediante awk podemos calcular el valor mínimo (editado con la aportación de tzo en los comentarios):

# seq 1 10 | awk 'NR==1 { MIN=$1; next }  $1 < MIN { MIN=$1 } END{ print MIN }'
1

El valor máximo:

# seq 1 10 | awk 'NR==1 { MAX=$1; next } $1 > MAX { MAX=$1 } END{ print MAX }'
10

Y la media:

# seq 1 10 | awk '{ SUM+=$1 } END { print SUM/NR}'
5.5

2 comments to “Máximo, mínimo y media con awk”

  1. Mejor de esta manera y así no te tienes que inventar un mínimo y un máximo:

    seq 1 10 | awk 'NR==1 {MIN=$1;next} $1 < MIN { MIN=$1 } END{ print MIN };
    
    seq 1 10 | awk 'NR==1{ MAX=$1;next} $1 > MAX { MAX=$1 } END{ print MAX }'
    
  2. Me gusta mucho la solución, lo modifico en el post!

    muchas gracias por la aportación!

Deja un comentario:

XHTML - Tags permitidos:<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>