AWK - Loops

Este capítulo explica os loops de AWK com um exemplo adequado. Os loops são usados ​​para executar um conjunto de ações de maneira repetida. A execução do loop continua enquanto a condição do loop for verdadeira.

For Loop

A sintaxe de for loop é -

Sintaxe

for (initialization; condition; increment/decrement)
   action

Inicialmente, o forinstrução executa a ação de inicialização e, em seguida, verifica a condição. Se a condição for verdadeira, ele executa ações e, em seguida, executa a operação de incremento ou decremento. A execução do loop continua enquanto a condição for verdadeira. Por exemplo, o exemplo a seguir imprime de 1 a 5 usandofor loop -

Exemplo

[jerry]$ awk 'BEGIN { for (i = 1; i <= 5; ++i) print i }'

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

Resultado

1
2
3
4
5

While Loop

o whileo loop continua executando a ação até que uma determinada condição lógica seja avaliada como verdadeira. Aqui está a sintaxe dewhile loop -

Sintaxe

while (condition)
   action

AWK primeiro verifica a condição; se a condição for verdadeira, ele executa a ação. Este processo se repete enquanto a condição do loop for avaliada como verdadeira. Por exemplo, o exemplo a seguir imprime de 1 a 5 usandowhile loop -

Exemplo

[jerry]$ awk 'BEGIN {i = 1; while (i < 6) { print i; ++i } }'

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

Resultado

1
2
3
4
5

Loop Do-While

o do-whileloop é semelhante ao loop while, exceto que a condição de teste é avaliada no final do loop. Aqui está a sintaxe dedo-whileloop -

Sintaxe

do
   action
while (condition)

Em um do-whileloop, a instrução de ação é executada pelo menos uma vez, mesmo quando a instrução de condição é avaliada como falsa. Por exemplo, o exemplo a seguir imprime 1 a 5 números usandodo-while loop -

Exemplo

[jerry]$ awk 'BEGIN {i = 1; do { print i; ++i } while (i < 6) }'

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

Resultado

1
2
3
4
5

Declaração de quebra

Como o próprio nome sugere, é usado para encerrar a execução do loop. Aqui está um exemplo que termina o loop quando a soma se torna maior que 50.

Exemplo

[jerry]$ awk 'BEGIN {
   sum = 0; for (i = 0; i < 20; ++i) { 
      sum += i; if (sum > 50) break; else print "Sum =", sum 
   } 
}'

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

Resultado

Sum = 0
Sum = 1
Sum = 3
Sum = 6
Sum = 10
Sum = 15
Sum = 21
Sum = 28
Sum = 36
Sum = 45

Continuar declaração

o continueinstrução é usada dentro de um loop para pular para a próxima iteração do loop. É útil quando você deseja pular o processamento de alguns dados dentro do loop. Por exemplo, o exemplo a seguir usacontinue declaração para imprimir os números pares entre 1 e 20.

Exemplo

[jerry]$ awk 'BEGIN {
   for (i = 1; i <= 20; ++i) {
      if (i % 2 == 0) print i ; else continue
   } 
}'

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

Resultado

2
4
6
8
10
12
14
16
18
20

Declaração de saída

É usado para interromper a execução do script. Ele aceita um número inteiro como argumento que é o código de status de saída para o processo AWK. Se nenhum argumento for fornecido,exitretorna o status zero. Aqui está um exemplo que interrompe a execução quando a soma se torna maior que 50.

Exemplo

[jerry]$ awk 'BEGIN {
   sum = 0; for (i = 0; i < 20; ++i) {
      sum += i; if (sum > 50) exit(10); else print "Sum =", sum 
   } 
}'

Resultado

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

Sum = 0
Sum = 1
Sum = 3
Sum = 6
Sum = 10
Sum = 15
Sum = 21
Sum = 28
Sum = 36
Sum = 45

Vamos verificar o status de retorno do script.

Exemplo

[jerry]$ echo $?

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

Resultado

10