Cómo usar declaraciones de control de flujo en AWK - Parte 12
- 1020
- 294
- Sra. Lorena Sedillo
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 AWKHay varias declaraciones de control de flujo en la programación AWK y estas incluyen:
- Declaración if-else
- para la declaración
- Declaración
- Declaración de hacer
- Declaración de ruptura
- Declaración de continuar
- Siguiente declaración
- Declaración NextFile
- 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.
- « Cumpleaños de Debian Gnu/Linux A 23 años de viaje y aún contando ..
- Cómo administrar los registros del sistema (configurar, rotar e importar en la base de datos) en RHEL 7 - Parte 5 »