Declaraciones condicionales en AWK

Declaraciones condicionales en AWK

Las declaraciones condicionales son una de las características más potentes de AWK, lo que permite a los usuarios ejecutar diferentes comandos basados ​​en los valores de variables o expresiones. Esto permite la creación de lógica compleja dentro de los scripts AWK y facilita el rendimiento de las tareas avanzadas de procesamiento de texto.

En este tutorial, cubriremos los conceptos básicos de las declaraciones condicionales en AWK, incluida la sintaxis y el uso de la declaración 'if-else'. Por ejemplo:

  1. Declaraciones if-else con AWK
  2. Declaración de cambio con AWK
  3. Operadores ternarios con AWK

Declaración if-else con AWK

El 'if-else' La declaración es una declaración condicional básica en AWK. Le permite especificar diferentes comandos para ejecutar en función de una condición particular. La sintaxis para el 'if-else' La declaración es la siguiente:

if (condición) # comandos para ejecutar si la condición es verdadera else # comandos para ejecutar si la condición es falsa
123456if (condición) # comandos para ejecutar si la condición es verdadera else # comandos para ejecutar si la condición es falsa

Aquí, 'condición' es una expresión booleana que se evalúa a verdadero o falso. Si la condición es verdadera, los comandos dentro de los aparatos rizados a continuación 'si' se ejecutan. Si la condición es falsa, los comandos dentro de los aparatos rizados siguiendo 'demás' se ejecutan.

Por ejemplo, supongamos que tenemos un archivo que contiene una lista de números, y queremos imprimir los números superiores a 10. Podemos usar el 'if-else' Declaración para realizar esta tarea de la siguiente manera:

Awk 'if ($ 1> 10) imprimir $ 1' números.TXT
1Awk 'if ($ 1> 10) imprimir $ 1' números.TXT

Aquí el 'si' La declaración verifica si el primer campo ($ 1) es mayor de 10. Si es así, el número se imprime. Si no es así, no pasa nada.

También puedes usar el 'if-else' declaración para realizar tareas más complejas. Por ejemplo, supongamos que tenemos un archivo que contiene una lista de nombres de usuarios y sus edades, y queremos imprimir los nombres de usuarios de los usuarios que tienen más de 18 años. Podemos usar la declaración 'if-else' para lograr esta tarea de la siguiente manera:

AWK 'if ($ 2> 18) imprimir $ 1 el usuario imprimir "no es lo suficientemente viejo"' usuarios.TXT
1AWK 'if ($ 2> 18) imprimir $ 1 el usuario imprimir "no es lo suficientemente viejo"' usuarios.TXT

Aquí el 'si' Declaración verifica si el segundo campo ($ 2) es mayor que 18. Si es así, se imprime el nombre de usuario. Si no es así, se imprime la cadena "El usuario no es lo suficientemente mayor".

Declaración de cambio con AWK

El 'cambiar' La declaración en AWK le permite ejecutar diferentes comandos basados ​​en múltiples condiciones. Proporciona una forma más concisa de expresar múltiples 'if-else' declaraciones. La sintaxis para el 'cambiar' La declaración es la siguiente:

Switch (variable) Case Value1: # comandos para ejecutar si variable == value1 break case value2: # comandos para ejecutar si variable == value2 ruptura ... predeterminado: # comandos para ejecutar si ninguno de los casos coincide
1234567891011Switch (variable) Case value1: # comandos para ejecutar si variable == value1 break case value2: # comandos para ejecutar si variable == value2 ruptura ... predeterminado: # comandos para ejecutar si ninguno de los casos coincide

Aquí, 'variable' es la variable o expresión que desea comparar con valores diferentes. 'Value1', 'Value2', etc. son los diferentes valores con los que desea comparar. El 'romper' La declaración se utiliza para salir del 'cambiar' declaración después de que se encuentra un partido. El 'por defecto' La palabra clave se usa para especificar comandos para ejecutar si ninguno de los casos coincide.

Por ejemplo, supongamos que tenemos un archivo que contiene una lista de lenguajes de programación, y queremos imprimir el nombre del lenguaje de programación basado en la extensión del archivo. Podemos usar el 'cambiar' Declaración para realizar esta tarea de la siguiente manera:

Awk 'switch ($ nf) case "py": imprimir "python"; romper; Caso "RB": Imprimir "Ruby"; romper; caso "JS": imprimir "JavaScript"; romper; Valor predeterminado: Imprimir lenguajes "desconocidos" '.TXT
1Awk 'switch ($ nf) case "py": imprimir "python"; romper; Caso "RB": Imprimir "Ruby"; romper; caso "JS": imprimir "JavaScript"; romper; Valor predeterminado: Imprimir lenguajes "desconocidos" '.TXT

Aquí, usamos el 'cambiar' declaración para comparar el último campo ($ Nf) contra diferentes valores ('py', 'rb', 'js'). Si el valor coincide, imprimemos el nombre del lenguaje de programación. Si no coincide, imprimemos "Desconocido".

Operadores ternarios con AWK

El 'Operador ternario' en AWK es una versión en taquigrafía del 'if-else' declaración. Le permite realizar una operación simple if-else en una sola línea. La sintaxis para el operador ternario es la siguiente:

(condición) ? Valor verdadero: valor falso
1(condición) ? Valor verdadero: valor falso

Aquí, 'condición'es la expresión booleana que desea evaluar. 'verdadero valor' es el valor a devolver si la condición es verdadera. 'Valor falso' es el valor a devolver si la condición es falsa.

Por ejemplo, supongamos que tenemos un archivo que contiene una lista de números, y queremos imprimir "Incluso" Si el número es uniforme y "Extraño" Si el número es impar. Podemos usar el operador ternario para realizar esta tarea de la siguiente manera:

Awk 'imprime ($ 1 % 2 == 0) ? "Incluso": "impar" 'Números.TXT
1Awk 'imprime ($ 1 % 2 == 0) ? "Incluso": "impar" 'Números.TXT

Aquí, usamos el operador ternario para verificar si el número en el primer campo ($ 1) es uniforme o extraño. Si es pareja, imprimemos "Incluso". Si es extraño, imprimemos "Extraño".

Conclusión

En conclusión, las declaraciones condicionales son una característica poderosa de AWK que permiten a los usuarios realizar tareas de procesamiento de texto avanzadas. El 'if-else' La declaración es una declaración condicional básica que le permite ejecutar diferentes comandos basados ​​en una condición particular. Dominando el 'if-else' Declaración y otras declaraciones condicionales, puede ser más efectivo y eficiente en sus secuencias de comandos AWK y lograr tareas de procesamiento de texto complejas con facilidad.