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