AWK - Operadores Lógicos

AWK suporta os seguintes operadores lógicos -

E lógico

É representado por &&. Sua sintaxe é a seguinte -

Sintaxe

expr1 && expr2

É avaliado como verdadeiro se ambos expr1 e expr2 forem avaliados como verdadeiro; caso contrário, retorna falso. expr2 é avaliada se e somente se expr1 for avaliada como verdadeira. Por exemplo, o exemplo a seguir verifica se o número de um único dígito fornecido está no formato octal ou não.

Exemplo

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

Ao executar este código, você obtém o seguinte resultado -

Resultado

5 is in octal format

OR lógico

É representado por ||. A sintaxe do OR lógico é -

Sintaxe

expr1 || expr2

Ele avalia como verdadeiro se expr1 ou expr2 for avaliado como verdadeiro; caso contrário, retorna falso. expr2 é avaliada se e somente se expr1 for avaliada como falsa. O exemplo a seguir demonstra isso -

Exemplo

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

Ao executar este código, você obtém o seguinte resultado -

Resultado

Current character is whitespace

NÃO lógico

É representado por exclamation mark (!). O exemplo a seguir demonstra isso -

Exemplo

! expr1

Ele retorna o elogio lógico de expr1. Se expr1 for avaliado como verdadeiro, ele retornará 0; caso contrário, retorna 1. Por exemplo, o exemplo a seguir verifica se uma string está vazia ou não.

Exemplo

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

Ao executar este código, você obtém o seguinte resultado -

Resultado

name is empty string.