AWK - Fonctions arithmétiques
AWK a les fonctions arithmétiques intégrées suivantes -
atan2 (y, x)
Il renvoie l'arc tangente de (y / x) en radians. L'exemple suivant illustre ceci -
Exemple
[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
}'
En exécutant ce code, vous obtenez le résultat suivant -
Production
The arc tangent for (x=-10.000000, y=10.000000) is 135.000000 degrees
cos (expr)
Cette fonction renvoie le cosinus de expr, qui s'exprime en radians. L'exemple suivant illustre ceci -
Exemple
[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
}'
En exécutant ce code, vous obtenez le résultat suivant -
Production
The cosine of 60.000000 degrees is 0.500000.
exp (expr)
Cette fonction est utilisée pour trouver la valeur exponentielle d'une variable.
Exemple
[jerry]$ awk 'BEGIN {
param = 5
result = exp(param);
printf "The exponential value of %f is %f.\n", param, result
}'
En exécutant ce code, vous obtenez le résultat suivant -
Production
The exponential value of 5.000000 is 148.413159.
int (expr)
Cette fonction tronque le exprà une valeur entière. L'exemple suivant illustre ceci -
[jerry]$ awk 'BEGIN {
param = 5.12345
result = int(param)
print "Truncated value =", result
}'
En exécutant ce code, vous obtenez le résultat suivant -
Truncated value = 5
log (expr)
Cette fonction calcule le logarithme naturel d'une variable.
Exemple
[jerry]$ awk 'BEGIN {
param = 5.5
result = log (param)
printf "log(%f) = %f\n", param, result
}'
En exécutant ce code, vous obtenez le résultat suivant -
Production
log(5.500000) = 1.704748
rand
Cette fonction renvoie un nombre aléatoire N, compris entre 0 et 1, tel que 0 <= N <1. Par exemple, l'exemple suivant génère trois nombres aléatoires
Exemple
[jerry]$ awk 'BEGIN {
print "Random num1 =" , rand()
print "Random num2 =" , rand()
print "Random num3 =" , rand()
}'
En exécutant ce code, vous obtenez le résultat suivant -
Production
Random num1 = 0.237788
Random num2 = 0.291066
Random num3 = 0.845814
sin (expr)
Cette fonction renvoie le sinus de expr, qui s'exprime en radians. L'exemple suivant illustre ceci -
Exemple
[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
}'
En exécutant ce code, vous obtenez le résultat suivant -
Production
The sine of 30.000000 degrees is 0.500000.
sqrt (expr)
Cette fonction renvoie la racine carrée de expr.
Exemple
[jerry]$ awk 'BEGIN {
param = 1024.0
result = sqrt(param)
printf "sqrt(%f) = %f\n", param, result
}'
En exécutant ce code, vous obtenez le résultat suivant -
Production
sqrt(1024.000000) = 32.000000
srand ([expr])
Cette fonction génère un nombre aléatoire en utilisant la valeur de départ. Il utiliseexprcomme nouvelle graine pour le générateur de nombres aléatoires. En l'absence d'expr, il utilise l'heure du jour comme valeur de départ.
Exemple
[jerry]$ awk 'BEGIN {
param = 10
printf "srand() = %d\n", srand()
printf "srand(%d) = %d\n", param, srand(param)
}'
En exécutant ce code, vous obtenez le résultat suivant:
Production
srand() = 1
srand(10) = 1417959587