AWK - Bucles

Este capítulo explica los bucles de AWK con un ejemplo adecuado. Los bucles se utilizan para ejecutar un conjunto de acciones de manera repetida. La ejecución del ciclo continúa mientras la condición del ciclo sea verdadera.

En bucle

La sintaxis de for bucle es -

Sintaxis

for (initialization; condition; increment/decrement)
   action

Inicialmente, el forinstrucción realiza la acción de inicialización, luego verifica la condición. Si la condición es verdadera, ejecuta acciones, luego realiza una operación de incremento o decremento. La ejecución del ciclo continúa mientras la condición sea verdadera. Por ejemplo, el siguiente ejemplo imprime 1 a 5 usandofor bucle -

Ejemplo

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

Al ejecutar este código, obtiene el siguiente resultado:

Salida

1
2
3
4
5

Mientras bucle

los whileEl ciclo sigue ejecutando la acción hasta que una condición lógica particular se evalúa como verdadera. Aquí está la sintaxis dewhile bucle -

Sintaxis

while (condition)
   action

AWK primero verifica la condición; si la condición es verdadera, ejecuta la acción. Este proceso se repite siempre que la condición del bucle se evalúe como verdadera. Por ejemplo, el siguiente ejemplo imprime 1 a 5 usandowhile bucle -

Ejemplo

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

Al ejecutar este código, obtiene el siguiente resultado:

Salida

1
2
3
4
5

Bucle de ejecución

los do-whileEl ciclo es similar al ciclo while, excepto que la condición de prueba se evalúa al final del ciclo. Aquí está la sintaxis dedo-whilebucle -

Sintaxis

do
   action
while (condition)

en un do-whilebucle, la declaración de acción se ejecuta al menos una vez incluso cuando la declaración de condición se evalúa como falsa. Por ejemplo, el siguiente ejemplo imprime de 1 a 5 números usandodo-while bucle -

Ejemplo

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

Al ejecutar este código, obtiene el siguiente resultado:

Salida

1
2
3
4
5

Declaración de ruptura

Como sugiere su nombre, se utiliza para finalizar la ejecución del ciclo. Aquí hay un ejemplo que finaliza el ciclo cuando la suma es mayor que 50.

Ejemplo

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

Al ejecutar este código, obtiene el siguiente resultado:

Salida

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

Continuar declaración

los continueLa declaración se usa dentro de un ciclo para saltar a la siguiente iteración del ciclo. Es útil cuando desea omitir el procesamiento de algunos datos dentro del ciclo. Por ejemplo, el siguiente ejemplo usacontinue declaración para imprimir los números pares entre 1 y 20.

Ejemplo

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

Al ejecutar este código, obtiene el siguiente resultado:

Salida

2
4
6
8
10
12
14
16
18
20

Declaración de salida

Se utiliza para detener la ejecución del script. Acepta un número entero como argumento, que es el código de estado de salida del proceso AWK. Si no se proporciona ningún argumento,exitdevuelve el estado cero. A continuación, se muestra un ejemplo que detiene la ejecución cuando la suma es superior a 50.

Ejemplo

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

Salida

Al ejecutar este código, obtiene el siguiente resultado:

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

Comprobemos el estado de devolución del script.

Ejemplo

[jerry]$ echo $?

Al ejecutar este código, obtiene el siguiente resultado:

Salida

10