Te sugerimos que pruebes esta resolución en un ambiente controlado antes de pasarlo a producción, saludos.
Solución:
... | awk ' sum+=$1 END print sum/NR'
Por defecto, (GNU) awk imprime números con hasta 6 dígitos significativos (más la parte del exponente). Esto viene del valor por defecto del OFMT
variable. No dice eso en los documentos, pero esto solo se aplica a números con valores no enteros.
podrías cambiar OFMT
para afectar a todos print
declaraciones, o más bien, simplemente usar printf
aquí, por lo que también funciona si el promedio resulta ser un número entero. Algo como %.3f
imprimiría los números con tres dígitos después del punto decimal.
...| awk ' sum+=$1 END printf "%.3fn", sum/NR '
Consulte los documentos para conocer el significado de la f
y g
y el modificador de precisión (.prec
en el segundo enlace):
- https://www.gnu.org/software/gawk/manual/html_node/Control-Letters.html
- https://www.gnu.org/software/gawk/manual/html_node/Format-Modifiers.html
awk 'NR == 1 max=$1; min=$1; sum=0 ...'
Esto no se inicializa NR
. En su lugar, comprueba si NR
es igual a uno, es decir, estamos en la primera línea. (==
es comparación, =
es asignación.) Si es así, inicializa max
, min
y sum
. Sin eso, max
y min
comenzaría como ceros. Nunca podría tener un valor máximo negativo o un valor mínimo positivo.
Si usa GNU awk
, prueba esto. Añade las comas haciendo uso de la '
modificador
$ awk 'sum+=$1ENDprintf "%'''.2fn",sum/NR' filename
1,316,375.05
$
si tienes jq
prueba esto.
$ jq -s min,max,add/length filename
1153022
1439480
1316375.05
$
De gnu.org: modificadores de formato gawk
Un carácter de comillas simples o apóstrofes es una extensión POSIX de ISO C. Indica que la parte entera de un valor de coma flotante, o la parte entera de un valor decimal entero, debe tener un carácter separador de miles. Esto solo funciona en entornos locales que admitan dichos caracteres. Por ejemplo:
Sección de Reseñas y Valoraciones
Nos puedes añadir valor a nuestra información tributando tu veteranía en las anotaciones.