Cómo usar declaraciones de control de flujo en AWK - Parte 12

Cómo usar declaraciones de control de flujo en AWK - Parte 12

Cuando revisa todos los ejemplos de AWK que hemos cubierto hasta ahora, desde el comienzo de la serie AWK, notará que todos los comandos en los diversos ejemplos se ejecutan secuencialmente, que es uno tras otro. Pero en ciertas situaciones, es posible que deseemos ejecutar algunas operaciones de filtrado de texto en función de algunas condiciones, es donde se establece el enfoque de las declaraciones de control de flujo.

Utilice declaraciones de control de flujo en AWK

Hay varias declaraciones de control de flujo en la programación AWK y estas incluyen:

  1. Declaración if-else
  2. para la declaración
  3. Declaración
  4. Declaración de hacer
  5. Declaración de ruptura
  6. Declaración de continuar
  7. Siguiente declaración
  8. Declaración NextFile
  9. declaración de salida

Sin embargo, para el alcance de esta serie, expondremos: if-else, para, mientras y hacer mientras declaraciones. Recuerde que ya pasamos por cómo usar la siguiente declaración en la Parte 6 de esta serie AWK.

1. La declaración if-else

La sintaxis esperada del Declaración if es similar al del caparazón Declaración if:

if (condición1) acciones1 else acciones2 

En la sintaxis anterior, condición1 y condición2 son expresiones AWK, y Acciones1 y acciones2 son comandos AWK ejecutados cuando se cumplen las condiciones respectivas.

Cuando condición1 está satisfecho, lo que significa que es verdad, entonces Acciones1 se ejecuta y el Declaración if Salidas, de lo contrario acciones2 es ejecutado.

El Declaración if También se puede ampliar a un if-else_if-else Declaración a continuación:

if (condición1) acciones1 else if (condición2) acciones2 else Actions3 

Para el formulario anterior, si condición1 es cierto, entonces Acciones1 se ejecuta y el Declaración if Salidas, de lo contrario condición2 se evalúa y si es cierto, entonces acciones2 se ejecuta y el Declaración if salidas. Sin embargo cuando condición2 es falso entonces, acciones3 se ejecuta y el Declaración if salidas.

Aquí hay un caso en el punto de usar If declaraciones, Tenemos una lista de usuarios y ellos siglos almacenado en el archivo, usuarios.TXT.

Queremos imprimir una declaración que indique el nombre de un usuario y si la edad del usuario es menor o más que 25 años.

[correo electrónico protegido] ~ $ usuarios de gatos.TXT Sarah L 35 F Aaron Kili 40 m John Doo 20 m Kili Seth 49 m 

Podemos escribir un breve script de shell para llevar a cabo nuestro trabajo anterior, aquí está el contenido del script:

#!/bin/bash awk 'if ($ 3 <= 25 ) print "User",$1,$2,"is less than 25 years old." ;  else  print "User",$1,$2,"is more than 25 years old" ;  ' ~/users.txt 

Luego guarde el archivo y salga, haga que el script sea ejecutable y ejecútelo de la siguiente manera:

Prueba de $ chmod +x.sh $ ./prueba.mierda 
Salida de muestra
La usuaria Sarah L tiene más de 25 años, el usuario Aaron Kili tiene más de 25 años, el usuario John Doo tiene menos de 25 años. El usuario Kili Seth tiene más de 25 años 

2. El para la declaración

En caso de que desee ejecutar algunos comandos AWK en un bucle, entonces el para la declaración Le ofrece una forma adecuada de hacerlo, con la sintaxis a continuación:

Aquí, el enfoque simplemente se define mediante el uso de un contador para controlar la ejecución del bucle, primero debe inicializar el contador, luego ejecutarlo contra una condición de prueba, si es verdad, ejecute las acciones y finalmente incrementar el contador. El bucle termina cuando el contador no satisface la condición.

para (contrarreinicialización; prueba-condición; contra-incremento) acciones 

El siguiente comando AWK muestra cómo el para la declaración funciona, donde queremos imprimir los números 0-10:

$ awk 'begin for (contador = 0; contador<=10;counter++) print counter ' 
Salida de muestra
0 1 2 3 4 5 6 7 8 9 10 

3. La declaración While

La sintaxis convencional del Declaración es como sigue:

while (condición) acciones 

La condición es una expresión de AWK y las acciones son líneas de comandos AWK ejecutados cuando la condición es verdadera.

A continuación se muestra un script para ilustrar el uso de Declaración para imprimir los números 0-10:

#!/bin/bash awk 'begin contuntar = 0; mientras (contador<=10) print counter; counter+=1 ;   

Guardar el archivo y hacer que el script sea ejecutable, luego ejecutarlo:

Prueba de $ chmod +x.sh $ ./prueba.mierda 
Salida de muestra
0 1 2 3 4 5 6 7 8 9 10 

4. La declaración de hacer mientras

Es una modificación del Declaración Arriba, con la siguiente sintaxis subyacente:

hacer acciones while (condición) 

La ligera diferencia es que, debajo hacer mientras, Los comandos AWK se ejecutan antes de evaluar la condición. Usando el mismo ejemplo bajo Declaración arriba, podemos ilustrar el uso de hacer mientras Alterando el comando AWK en el prueba.mierda Script de la siguiente manera:

#!/bin/bash awk 'begin contuntar = 0; do imprimir contador; contador+= 1;  mientras (contador<=10)  ' 

Después de modificar el script, guarde el archivo y salga. Luego haga que el script sea ejecutable y ejecutelo de la siguiente manera:

Prueba de $ chmod +x.sh $ ./prueba.mierda 
Salida de muestra
0 1 2 3 4 5 6 7 8 9 10 

Conclusión

Esta no es una guía completa con respecto a las declaraciones de control de flujo AWK, como había mencionado anteriormente, hay varios otros declaraciones de control de flujo en asombro.

No obstante, esta parte de la serie AWK debería darle una idea fundamental clara de cómo la ejecución de los comandos AWK puede controlarse en función de ciertas condiciones.

También puede exponer más sobre el resto de las declaraciones de control de flujo para obtener más comprensión del tema. Finalmente, en la siguiente sección de la serie AWK, pasaremos a escribir scripts AWK.