Awk

Cómo usar la declaración condicional en el comando awk

Cómo usar la declaración condicional en el comando awk
La declaración condicional se utiliza en cualquier lenguaje de programación para ejecutar cualquier declaración basada en una condición particular. La declaración condicional se ejecuta en función del valor verdadero o falso cuando las declaraciones if-else y if-elseif se utilizan para escribir la declaración condicional en la programación. Awk admite todo tipo de declaraciones condicionales como otros lenguajes de programación.  En este tutorial se muestra cómo se pueden usar diferentes declaraciones condicionales en el comando awk.

Sintaxis:

La sintaxis para cuatro tipos de declaraciones condicionales se menciona a continuación.

  1. si declaración
if (condición)
declaración

La declaración se ejecuta cuando la condición if devuelve verdadera.

  1. declaración if-else
if (condición)
declaración-1

demás
declaración-2

La sentencia-1 se ejecuta cuando la condición if es verdadera y la sentencia-2 se ejecuta cuando if devuelve falso.

  1. declaración if-elseif
if (condición)
declaración-1

elseif
declaración-2

elseif
declaración-3

.. .
demás
declaración-n

Esta declaración condicional se utiliza para ejecutar una declaración basada en múltiples condiciones if. Si la primera condición es falsa, verifica la segunda condición. Si la segunda condición es falsa, verifica la tercera condición y así sucesivamente. Si todas las condiciones devuelven falso, se ejecutará la declaración de la parte else.

  1. Ternario (?:) operador
(condición) ? declaración-1: declaración-2

El operador ternario se puede utilizar como alternativa a la instrucción if-else. Si la condición es verdadera, la declaración-1 se ejecutará y si la condición es falsa, la declaración-2 se ejecutará.

Ejemplo-1: Usar simple if en awk

Crea un archivo de texto llamado emplyee.TXT con el siguiente contenido. Supongamos que tiene que averiguar el nombre del departamento, la edad y el salario del empleado cuya identificación es 11002.

empleado.TXT

11001 Ventas 45 $ 3000
11002 HR 32 $ 1500
11003 Marketing 26 $ 1200
11004 HR 25 $ 2500

Se utiliza una condición if simple en el siguiente script para buscar el id 11002 en el primer campo del archivo. Si la condición se cumple, imprimirá los valores de los otros campos de la línea correspondiente; de ​​lo contrario, no se imprimirá nada.

$ awk '
si ($ 1 == "11002")

imprimir "Nombre del departamento:", $ 2, "\ n";
imprimir "Edad:", $ 3, "\ n";
imprimir "Salario:", $ 4, "\ n";
 

' empleado.TXT

Producción:

El id, 1102 existe en el archivo. Entonces, imprimió los otros valores del empleado.

Ejemplo 2: uso de if-else en awk

Suponga que desea imprimir la información salarial de los empleados cuya edad es menor o igual a 40 e imprimir la información de edad para otros empleados. El siguiente script awk puede realizar esta tarea. Solo hay un empleado en empleado.TXT archivo cuya edad es mayor de 40 y la edad de todos los demás empleados es menor de 40.

$ awk '
si ($ 3 <= 40)

imprimir "El salario de", $ 1, "es", $ 4, "\ n"

demás

imprimir "La edad de", $ 1, "es", $ 3, "\ n"

 
' empleado.TXT

Producción:

La siguiente salida aparecerá después de ejecutar el script.

Ejemplo-3: uso de if-elseif en un script awk

Crea un archivo de texto llamado persona.txt con el siguiente contenido.

persona.TXT

JACKSON Hombre de negocios
Titular de servicio masculino MARTIN
LILY Gerente Femenina
Director ejecutivo masculino de ROBINSON

Crea un archivo awk llamado if_elseif.awk con el siguiente código para imprimir el color favorito de cada persona cuyo nombre existe en el archivo. La instrucción if-elseif se usa en el script para realizar esta tarea. El script leerá el primer valor de campo del archivo, empleado.TXT y comprobar con un valor particular. Si el primero Si la condición se vuelve falsa, entonces verificará el segundo Si condición y así sucesivamente. Cuando alguna condición se vuelva verdadera, se asignará un valor de color. Si todas las condiciones se vuelven falsas, entonces Ninguno se asignará como valor de color. El color favorito de cada persona se imprimirá o "No se encontró a ninguna persona" se imprimirá si ningún nombre de persona coincide.

if_elseif.awk


nombre = $ 1;
if (nombre == "JACKSON") color = "Azul";
else if (nombre == "MARTIN") color = "Negro";
else if (nombre == "LIRIO") color = "Rojo";
else if (nombre == "ROBINSON") color = "Blanco";
else color = "Ninguno";
 
si (color!= "Ninguno") imprimir "El color favorito de", nombre, "es", color;
si no imprime "No se encontró a ninguna persona";
 

Ejecute el siguiente comando para ejecutar el archivo if_elseif.awk con persona.TXT

$ awk -f if_elseif.persona awk.TXT

Producción:

La siguiente salida aparecerá después de ejecutar el comando.

Ejemplo 4: uso del operador ternario en awk

El tercer campo de persona.TXT archivo contiene la profesión de cada persona. El siguiente operador ternario lee cada línea del archivo y hace coincidir el valor del tercer campo con "Gerente". Si el valor coincide, imprimirá el nombre de la persona y, de lo contrario, imprimirá el género de la persona.

$ awk 'print ($ 3 == "Administrador") ? "El nombre es" $ 1: "El género es la persona" $ 2 '.TXT

Producción:

La siguiente salida aparecerá después de ejecutar el script. Una persona con "profesión de gerente existe en el persona.TXT. Entonces, el nombre de una persona está impreso y el género está impreso para otras personas.

Ejemplo-5: uso de múltiples condiciones en la declaración if

El OR lógico y el AND lógico se pueden utilizar para definir varias condiciones en la declaración condicional del script awk. El siguiente script awk lee cada línea de empleado.TXT y comprueba la edad y la designación con valores particulares. El AND lógico se utiliza en Si condición. Cuando el valor de la edad sea mayor o igual a 30 y la designación sea "HR", se imprimirá la identificación del empleado y el salario correspondientes.

$ awk 'if ($ 3> = 30 && $ 2 == "HR") imprime "Id de empleado:",
$ 1, "y", "Salario:", $ 4, "\ n"; 'empleado.TXT

Producción:

La siguiente salida aparecerá después de ejecutar el script. Solo existe un empleado con la designación "RRHH" en empleado.TXT. La información de identificación y salario de este empleado se imprime aquí.

Conclusión:

Los usos más comunes de la declaración condicional de cualquier programación estándar son compatibles con el comando awk. Cómo puede usar condiciones únicas y múltiples en awk se explica usando ejemplos muy simples aquí. Espero que después de practicar estos ejemplos, el alumno sea capaz de utilizar correctamente la declaración condicional en el script awk.

Cómo instalar y jugar a Doom en Linux
Introducción a Doom La serie Doom se originó en los años 90 después del lanzamiento del Doom original. Fue un éxito instantáneo y, desde ese momento e...
Vulkan para usuarios de Linux
Con cada nueva generación de tarjetas gráficas, vemos que los desarrolladores de juegos superan los límites de la fidelidad gráfica y se acercan un pa...
OpenTTD frente a Simutrans
Crear su propia simulación de transporte puede ser divertido, relajante y extremadamente atractivo. Es por eso que debes asegurarte de probar tantos j...