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