AWK - Funzioni aritmetiche
AWK ha le seguenti funzioni aritmetiche incorporate:
atan2 (y, x)
Restituisce l'arcotangente di (y / x) in radianti. Il seguente esempio lo dimostra:
Esempio
[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
}'
Eseguendo questo codice, ottieni il seguente risultato:
Produzione
The arc tangent for (x=-10.000000, y=10.000000) is 135.000000 degrees
cos (expr)
Questa funzione restituisce il coseno di expr, che è espresso in radianti. Il seguente esempio lo dimostra:
Esempio
[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
}'
Eseguendo questo codice, ottieni il seguente risultato:
Produzione
The cosine of 60.000000 degrees is 0.500000.
exp (expr)
Questa funzione viene utilizzata per trovare il valore esponenziale di una variabile.
Esempio
[jerry]$ awk 'BEGIN {
param = 5
result = exp(param);
printf "The exponential value of %f is %f.\n", param, result
}'
Eseguendo questo codice, ottieni il seguente risultato:
Produzione
The exponential value of 5.000000 is 148.413159.
int (espr)
Questa funzione tronca il file expra un valore intero. Il seguente esempio lo dimostra:
[jerry]$ awk 'BEGIN {
param = 5.12345
result = int(param)
print "Truncated value =", result
}'
Eseguendo questo codice, ottieni il seguente risultato:
Truncated value = 5
log (espr)
Questa funzione calcola il logaritmo naturale di una variabile.
Esempio
[jerry]$ awk 'BEGIN {
param = 5.5
result = log (param)
printf "log(%f) = %f\n", param, result
}'
Eseguendo questo codice, ottieni il seguente risultato:
Produzione
log(5.500000) = 1.704748
rand
Questa funzione restituisce un numero casuale N, compreso tra 0 e 1, tale che 0 <= N <1. Ad esempio, l'esempio seguente genera tre numeri casuali
Esempio
[jerry]$ awk 'BEGIN {
print "Random num1 =" , rand()
print "Random num2 =" , rand()
print "Random num3 =" , rand()
}'
Eseguendo questo codice, ottieni il seguente risultato:
Produzione
Random num1 = 0.237788
Random num2 = 0.291066
Random num3 = 0.845814
sin (expr)
Questa funzione restituisce il seno di expr, che è espresso in radianti. Il seguente esempio lo dimostra:
Esempio
[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
}'
Eseguendo questo codice, ottieni il seguente risultato:
Produzione
The sine of 30.000000 degrees is 0.500000.
sqrt (espr)
Questa funzione restituisce la radice quadrata di expr.
Esempio
[jerry]$ awk 'BEGIN {
param = 1024.0
result = sqrt(param)
printf "sqrt(%f) = %f\n", param, result
}'
Eseguendo questo codice, ottieni il seguente risultato:
Produzione
sqrt(1024.000000) = 32.000000
srand ([expr])
Questa funzione genera un numero casuale utilizzando il valore seed. Utilizzaexprcome nuovo seme per il generatore di numeri casuali. In assenza di expr, utilizza l'ora del giorno come valore seed.
Esempio
[jerry]$ awk 'BEGIN {
param = 10
printf "srand() = %d\n", srand()
printf "srand(%d) = %d\n", param, srand(param)
}'
Eseguendo questo codice, ottieni il seguente risultato -
Produzione
srand() = 1
srand(10) = 1417959587