AWK - Boucles

Ce chapitre explique les boucles d'AWK avec un exemple approprié. Les boucles sont utilisées pour exécuter un ensemble d'actions de manière répétée. L'exécution de la boucle continue tant que la condition de la boucle est vraie.

Pour la boucle

La syntaxe de for la boucle est -

Syntaxe

for (initialization; condition; increment/decrement)
   action

Initialement, le forL'instruction effectue une action d'initialisation, puis vérifie la condition. Si la condition est vraie, il exécute des actions, puis il effectue une opération d'incrémentation ou de décrémentation. L'exécution de la boucle se poursuit tant que la condition est vraie. Par exemple, l'exemple suivant imprime 1 à 5 en utilisantfor boucle -

Exemple

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

En exécutant ce code, vous obtenez le résultat suivant -

Production

1
2
3
4
5

Alors que la boucle

le whileloop continue d'exécuter l'action jusqu'à ce qu'une condition logique particulière soit évaluée à true. Voici la syntaxe dewhile boucle -

Syntaxe

while (condition)
   action

AWK vérifie d'abord la condition; si la condition est vraie, il exécute l'action. Ce processus se répète tant que la condition de boucle est évaluée à vrai. Par exemple, l'exemple suivant imprime 1 à 5 en utilisantwhile boucle -

Exemple

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

En exécutant ce code, vous obtenez le résultat suivant -

Production

1
2
3
4
5

Boucle Do-While

le do-whileloop est similaire à la boucle while, sauf que la condition de test est évaluée à la fin de la boucle. Voici la syntaxe dedo-whileboucle -

Syntaxe

do
   action
while (condition)

Dans un do-whileboucle, l'instruction d'action est exécutée au moins une fois, même lorsque l'instruction de condition est évaluée à false. Par exemple, l'exemple suivant imprime 1 à 5 nombres en utilisantdo-while boucle -

Exemple

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

En exécutant ce code, vous obtenez le résultat suivant -

Production

1
2
3
4
5

Déclaration de rupture

Comme son nom l'indique, il est utilisé pour terminer l'exécution de la boucle. Voici un exemple qui termine la boucle lorsque la somme devient supérieure à 50.

Exemple

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

En exécutant ce code, vous obtenez le résultat suivant -

Production

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

Continuer la déclaration

le continueL'instruction est utilisée dans une boucle pour passer à l'itération suivante de la boucle. C'est utile lorsque vous souhaitez ignorer le traitement de certaines données à l'intérieur de la boucle. Par exemple, l'exemple suivant utilisecontinue instruction pour imprimer les nombres pairs entre 1 et 20.

Exemple

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

En exécutant ce code, vous obtenez le résultat suivant -

Production

2
4
6
8
10
12
14
16
18
20

Déclaration de sortie

Il est utilisé pour arrêter l'exécution du script. Il accepte un entier comme argument qui est le code d'état de sortie pour le processus AWK. Si aucun argument n'est fourni,exitrenvoie le statut zéro. Voici un exemple qui arrête l'exécution lorsque la somme devient supérieure à 50.

Exemple

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

Production

En exécutant ce code, vous obtenez le résultat suivant -

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

Vérifions l'état de retour du script.

Exemple

[jerry]$ echo $?

En exécutant ce code, vous obtenez le résultat suivant -

Production

10