Tutoriales

Cómo utilizar declaraciones de control de flujo en awk

Cuando mires todos los ejemplos de Awk que hemos cubierto hasta ahora desde el comienzo de la serie Awk, notarás que todos los comandos en cada ejemplo se ejecutan secuencialmente, uno tras otro.

Pero en algunos casos, es posible que queramos realizar algunas operaciones de filtrado de texto según ciertas condiciones, y aquí es donde entra en juego el método de declaración de control de flujo.

Hay varias declaraciones de control de flujo en la programación Awk, que incluyen:

  • declaración si no
  • para declaración
  • mientras declaración
  • hacer mientras declaración
  • declaración de interrupción
  • continuar declarando
  • próxima declaración
  • declaración del siguiente archivo
  • declaración de retiro

Sin embargo, para el alcance de esta serie abordaremos: if-else, for, while y do while declaración. Recuerde, ya cubrimos cómo utilizar la siguiente declaración en la Parte 6 de esta serie de Awk.

1. declaración si-si no

sintaxis esperada if statement Similar a la concha si declaración:

if  (condition1) {
     actions1
}
else {
      actions2
}

En la sintaxis anterior, condition1 y condition2 es una expresión Awk, y actions1 y actions2 Es la instrucción Awk la que se ejecuta cuando se cumplen las condiciones respectivas.

cuando condition1 Satisfecho significa que es verdad, entonces actions1 se ejecuta y if statement salir o si no actions2 ser ejecutado.

este if statement También puede extenderse a if-else_if-else El comunicado es el siguiente:

if (condition1){
     actions1
}
else if (conditions2){
      actions2
}
else{
     actions3
}

De esta forma, si condition1 es cierto, entonces actions1 se ejecuta y if statement salir o si no condition2 se evalúa si es cierto, entonces actions2 se ejecuta y if statement abandonar. Sin embargo, cuando condition2 es falso, actions3 se ejecuta y if statement abandonar.

A continuación se muestra un ejemplo de uso if statementstenemos una lista usuario y su edad guardar en archivo usuario.txt.

Sarah L			35    	F
Aaron Kili		40    	M
John  Doo		20    	M
Kili  Seth		49    	M    

Queremos imprimir una declaración que indique el nombre del usuario y si la edad del usuario es menor o mayor que 25 Años.

Podemos escribir un breve script de shell para realizar el trabajo anterior. El siguiente es el contenido del script:

#!/bin/bash
awk ' { 
        if ( $3 

Then save the file and exit, make the script executable, and run it as follows:

chmod +x test.sh
./test.sh

salida de muestra:

User Sarah L is more than 25 years old
User Aaron Kili is more than 25 years old
User John Doo is less than 25 years old.
User Kili Seth is more than 25 years old

2. para declaración

Si desea ejecutar algunos comandos Awk en un bucle, entonces for statement Se le proporciona una forma adecuada de hacerlo, con la siguiente sintaxis:

for ( counter-initialization; test-condition; counter-increment ){
      actions
}

Aquí, el método se define simplemente para usar un contador para controlar la ejecución del bucle, primero debe inicializar el contador, luego ejecutarlo según la condición de prueba, realizar la acción si es verdadera y finalmente incrementar el contador. El ciclo termina cuando el contador no cumple la condición.

El siguiente comando Awk muestra cómo for statement Válido, donde queremos imprimir números. 0-10:

awk 'BEGIN{ for(counter=0;counter

Sample Output:

0
1
2
3
4
5
6
7
8
9
10

3. mientras declaración

la sintaxis regular de while statement como sigue:

while ( condition ) {
          actions
}

La condición es una expresión Awk y la acción es una lista de comandos Awk que se ejecutan cuando la condición es verdadera.

Aquí hay un guión para ilustrar el uso de mientras declaración Imprimir números 0-10:

#!/bin/bash
awk ' BEGIN{ counter=0 ;
         
        while(counter

Save the file and make the script executable, then run it:

chmod +x test.sh
./test.sh

salida de muestra:

0
1
2
3
4
5
6
7
8
9
10

4. hacer mientras declaración

este do-while La afirmación es cierta while La sintaxis de la declaración es la siguiente:

do {
     actions
}
 while (condition) 

La sutil diferencia es que en do whilela instrucción Awk se ejecuta antes de evaluar la condición. Utilice el siguiente ejemplo while statement Arriba podemos explicar cómo utilizar do while Cambiando el comando awk archivo de prueba El guión es el siguiente:

#!/bin/bash

awk ' BEGIN{ counter=0 ;  
        do{
            print counter;  
            counter+=1 ;    
        }
        while (counter

After modifying the script, save the file and exit. Then make the script executable and execute it as follows:

chmod +x test.sh
./test.sh

salida de muestra:

0
1
2
3
4
5
6
7
8
9
10
en conclusión

Esta no es una guía completa para las declaraciones de control de flujo de awk, como mencioné antes, hay varias otras. declaración de control de flujo en mal estado.

No obstante, esta parte de la serie Awk debería brindarle una comprensión clara de cómo controlar la ejecución de los comandos de Awk en función de condiciones específicas.

También puede profundizar en las declaraciones de control de flujo restantes para comprender mejor el tema. Finalmente, en la siguiente parte de la serie Awk, comenzaremos a escribir guiones de Awk.

Para aquellos que buscan un recurso completo, hemos recopilado todos awk La serie de artículos está organizada en un libro con un total de 13 capítulos y 41 páginas, que cubren el uso básico y avanzado de Awk, así como ejemplos prácticos.

Nombre del productopreciocompra
Libro electrónico: Guía de introducción a Awk para principiantes$8.99[Buy Now]

LEER  Cómo usar los comandos cat y tac en Linux

Publicaciones relacionadas

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Botón volver arriba