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