En el siguiente comando awk

 awk '{sum+=$1; ++n} END {avg=sum/n; print "Avg monitoring time = "avg}' file.txt

¿qué debo cambiar para quitar la notación científica de salida (valores muy pequeños muestran como 1.5 e-05) ?

Yo no era capaz de tener éxito con el OMFT variable.

  • Esto no parece ser un c relacionados con la pregunta.
  • oups, tienes razón, gracias por la edición
InformationsquelleAutor Manuel Selva | 2012-10-03

1 Comentario

  1. 40

    Debe utilizar el printf AWK declaración. De esa manera usted puede especificar el relleno, precisión, etc. En su caso, la %f de control de la carta parece el más apropiado.

    • Muchas gracias !! me faltaba la f en el printF
    • Para aquellos que no acostumbran a usar awk y olvidarse de la sintaxis, aquí está un ejemplo: echo ""|awk '{printf "%.2f", 1566666666/50}'
    • La respuesta perfecta :), funcionó
    • También tenga en cuenta que incluso si usted está sumando enteros, usted probablemente desea utilizar %f.
    • Si usted no necesita awk a tomar cualquier tipo de entrada, se podría hacer awk 'BEGIN{printf "%.2f", 1566666666/50}' a utilizar su ejemplo. El valor predeterminado selector es $0, que es el estándar de entrada, & a la espera de una nueva línea en el estándar de entrada antes de ejecutar, pero BEGIN no espera por nada en la entrada estándar. Además, apenas a la salida de una nueva línea, usted puede hacer echo, usted no necesita echo "".

Dejar respuesta

Please enter your comment!
Please enter your name here