AWK - Funciones aritméticas

AWK tiene las siguientes funciones aritméticas integradas:

atan2 (y, x)

Devuelve el arcotangente de (y / x) en radianes. El siguiente ejemplo demuestra esto:

Ejemplo

[jerry]$ awk 'BEGIN {
   PI = 3.14159265
   x = -10
   y = 10
   result = atan2 (y,x) * 180 / PI;
   
   printf "The arc tangent for (x=%f, y=%f) is %f degrees\n", x, y, result
}'

Al ejecutar este código, obtiene el siguiente resultado:

Salida

The arc tangent for (x=-10.000000, y=10.000000) is 135.000000 degrees

cos (expr)

Esta función devuelve el coseno de expr, que se expresa en radianes. El siguiente ejemplo demuestra esto:

Ejemplo

[jerry]$ awk 'BEGIN {
   PI = 3.14159265
   param = 60
   result = cos(param * PI / 180.0);

   printf "The cosine of %f degrees is %f.\n", param, result
}'

Al ejecutar este código, obtiene el siguiente resultado:

Salida

The cosine of 60.000000 degrees is 0.500000.

exp (expr)

Esta función se usa para encontrar el valor exponencial de una variable.

Ejemplo

[jerry]$ awk 'BEGIN {
   param = 5
   result = exp(param);
   
   printf "The exponential value of %f is %f.\n", param, result
}'

Al ejecutar este código, obtiene el siguiente resultado:

Salida

The exponential value of 5.000000 is 148.413159.

int (expr)

Esta función trunca el expra un valor entero. El siguiente ejemplo demuestra esto:

[jerry]$ awk 'BEGIN {
   param = 5.12345
   result = int(param)
   
   print "Truncated value =", result
}'

Al ejecutar este código, obtiene el siguiente resultado:

Truncated value = 5

log (expr)

Esta función calcula el logaritmo natural de una variable.

Ejemplo

[jerry]$ awk 'BEGIN {
   param = 5.5
   result = log (param)
   
   printf "log(%f) = %f\n", param, result
}'

Al ejecutar este código, obtiene el siguiente resultado:

Salida

log(5.500000) = 1.704748

rand

Esta función devuelve un número aleatorio N, entre 0 y 1, tal que 0 <= N <1. Por ejemplo, el siguiente ejemplo genera tres números aleatorios

Ejemplo

[jerry]$ awk 'BEGIN {
   print "Random num1 =" , rand()
   print "Random num2 =" , rand()
   print "Random num3 =" , rand()
}'

Al ejecutar este código, obtiene el siguiente resultado:

Salida

Random num1 = 0.237788
Random num2 = 0.291066
Random num3 = 0.845814

pecado (expr)

Esta función devuelve el seno de expr, que se expresa en radianes. El siguiente ejemplo demuestra esto:

Ejemplo

[jerry]$ awk 'BEGIN {
   PI = 3.14159265
   param = 30.0
   result = sin(param * PI /180)

   printf "The sine of %f degrees is %f.\n", param, result
}'

Al ejecutar este código, obtiene el siguiente resultado:

Salida

The sine of 30.000000 degrees is 0.500000.

sqrt (expr)

Esta función devuelve la raíz cuadrada de expr.

Ejemplo

[jerry]$ awk 'BEGIN {
   param = 1024.0
   result = sqrt(param)
   
   printf "sqrt(%f) = %f\n", param, result
}'

Al ejecutar este código, obtiene el siguiente resultado:

Salida

sqrt(1024.000000) = 32.000000

srand ([expr])

Esta función genera un número aleatorio utilizando el valor inicial. Usaexprcomo la nueva semilla para el generador de números aleatorios. En ausencia de expr, utiliza la hora del día como valor inicial.

Ejemplo

[jerry]$ awk 'BEGIN {
   param = 10
   
   printf "srand() = %d\n", srand()
   printf "srand(%d) = %d\n", param, srand(param)
}'

Al ejecutar este código, obtiene el siguiente resultado:

Salida

srand() = 1
srand(10) = 1417959587