AWK - Opérateurs logiques

AWK prend en charge les opérateurs logiques suivants -

ET logique

Il est représenté par &&. Sa syntaxe est la suivante -

Syntaxe

expr1 && expr2

Il prend la valeur true si à la fois expr1 et expr2 évaluent à true; sinon, il renvoie false. expr2 est évalué si et seulement si expr1 prend la valeur true. Par exemple, l'exemple suivant vérifie si le numéro à un chiffre donné est au format octal ou non.

Exemple

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

En exécutant ce code, vous obtenez le résultat suivant -

Production

5 is in octal format

OU logique

Il est représenté par ||. La syntaxe du OU logique est -

Syntaxe

expr1 || expr2

Il prend la valeur true si expr1 ou expr2 prend la valeur true; sinon, il renvoie false. expr2 est évalué si et seulement si expr1 est évalué à faux. L'exemple suivant illustre ceci -

Exemple

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

En exécutant ce code, vous obtenez le résultat suivant -

Production

Current character is whitespace

NON logique

Il est représenté par exclamation mark (!). L'exemple suivant illustre ceci -

Exemple

! expr1

Il renvoie le complément logique de expr1. Si expr1 est évalué à vrai, il renvoie 0; sinon, il renvoie 1. Par exemple, l'exemple suivant vérifie si une chaîne est vide ou non.

Exemple

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

En exécutant ce code, vous obtenez le résultat suivant -

Production

name is empty string.