AWK - Fluxo de Controle

Como outras linguagens de programação, AWK fornece instruções condicionais para controlar o fluxo de um programa. Este capítulo explica as declarações de controle do AWK com exemplos adequados.

Declaração If

Ele simplesmente testa a condição e executa certas ações dependendo da condição. Dada a seguir é a sintaxe deif declaração -

Sintaxe

if (condition)
   action

Também podemos usar um par de chaves, conforme indicado abaixo, para executar várias ações -

Sintaxe

if (condition) {
   action-1
   action-1
   .
   .
   action-n
}

Por exemplo, o exemplo a seguir verifica se um número é par ou não -

Exemplo

[jerry]$ awk 'BEGIN {num = 10; if (num % 2 == 0) printf "%d is even number.\n", num }'

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

Resultado

10 is even number.

Declaração If Else

No if-else sintaxe, podemos fornecer uma lista de ações a serem realizadas quando uma condição se torna falsa.

A sintaxe de if-else declaração é a seguinte -

Sintaxe

if (condition)
   action-1
else
   action-2

Na sintaxe acima, a ação 1 é executada quando a condição é avaliada como verdadeira e a ação 2 é executada quando a condição é avaliada como falsa. Por exemplo, o exemplo a seguir verifica se um número é par ou não -

Exemplo

[jerry]$ awk 'BEGIN {
   num = 11; if (num % 2 == 0) printf "%d is even number.\n", num; 
      else printf "%d is odd number.\n", num 
}'

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

Resultado

11 is odd number.

Escada If-Else-If

Podemos facilmente criar um if-else-if escada usando vários if-elseafirmações. O exemplo a seguir demonstra isso -

Exemplo

[jerry]$ awk 'BEGIN {
   a = 30;
   
   if (a==10)
   print "a = 10";
   else if (a == 20)
   print "a = 20";
   else if (a == 30)
   print "a = 30";
}'

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

Resultado

a = 30