AWK - Operatori logici

AWK supporta i seguenti operatori logici:

AND logico

È rappresentato da &&. La sua sintassi è la seguente:

Sintassi

expr1 && expr2

Restituisce true se sia expr1 che expr2 restituiscono true; altrimenti restituisce falso. expr2 viene valutato se e solo se expr1 restituisce true. Ad esempio, il seguente esempio verifica se il numero a una cifra specificato è in formato ottale o meno.

Esempio

[jerry]$ awk 'BEGIN {
   num = 5; if (num >= 0 && num <= 7) printf "%d is in octal format\n", num 
}'

Eseguendo questo codice, ottieni il seguente risultato:

Produzione

5 is in octal format

OR logico

È rappresentato da ||. La sintassi dell'OR logico è:

Sintassi

expr1 || expr2

Restituisce true se espr1 o expr2 restituisce true; altrimenti restituisce falso. expr2 viene valutato se e solo se expr1 restituisce false. Il seguente esempio lo dimostra:

Esempio

[jerry]$ awk 'BEGIN {
   ch = "\n"; if (ch == " " || ch == "\t" || ch == "\n") 
   print "Current character is whitespace." 
}'

Eseguendo questo codice, ottieni il seguente risultato:

Produzione

Current character is whitespace

NOT logico

È rappresentato da exclamation mark (!). Il seguente esempio lo dimostra:

Esempio

! expr1

Restituisce il complimento logico di expr1. Se expr1 restituisce true, restituisce 0; altrimenti restituisce 1. Ad esempio, il seguente esempio controlla se una stringa è vuota o meno.

Esempio

[jerry]$ awk 'BEGIN { name = ""; if (! length(name)) print "name is empty string." }'

Eseguendo questo codice, ottieni il seguente risultato:

Produzione

name is empty string.