AWK - Operadores lógicos
AWK admite los siguientes operadores lógicos:
Y lógico
Está representado por &&. Su sintaxis es la siguiente:
Sintaxis
expr1 && expr2
Se evalúa como verdadero si tanto expr1 como expr2 se evalúan como verdadero; de lo contrario, devuelve falso. expr2 se evalúa si y solo si expr1 se evalúa como verdadero. Por ejemplo, el siguiente ejemplo verifica si el número de un solo dígito dado está en formato octal o no.
Ejemplo
[jerry]$ awk 'BEGIN {
num = 5; if (num >= 0 && num <= 7) printf "%d is in octal format\n", num
}'
Al ejecutar este código, obtiene el siguiente resultado:
Salida
5 is in octal format
OR lógico
Está representado por ||. La sintaxis de Logical OR es:
Sintaxis
expr1 || expr2
Se evalúa como verdadero si expr1 o expr2 se evalúa como verdadero; de lo contrario, devuelve falso. expr2 se evalúa si y solo si expr1 se evalúa como falso. El siguiente ejemplo demuestra esto:
Ejemplo
[jerry]$ awk 'BEGIN {
ch = "\n"; if (ch == " " || ch == "\t" || ch == "\n")
print "Current character is whitespace."
}'
Al ejecutar este código, obtiene el siguiente resultado:
Salida
Current character is whitespace
NO lógico
Está representado por exclamation mark (!). El siguiente ejemplo demuestra esto:
Ejemplo
! expr1
Devuelve el complemento lógico de expr1. Si expr1 se evalúa como verdadero, devuelve 0; de lo contrario, devuelve 1. Por ejemplo, el siguiente ejemplo comprueba si una cadena está vacía o no.
Ejemplo
[jerry]$ awk 'BEGIN { name = ""; if (! length(name)) print "name is empty string." }'
Al ejecutar este código, obtiene el siguiente resultado:
Salida
name is empty string.