Cómo utilizar operadores de comparación con Awk en Linux-Parte 4

Cómo utilizar operadores de comparación con Awk en Linux-Parte 4

Cuando se trata de valores numéricos o de cadena en una línea de texto, filtrar texto o cadenas mediante operadores de comparación resulta útil para los usuarios del comando Awk.

En esta parte de la Awk series, veremos cómo puede filtrar texto o cadenas usando operadores de comparación. Si es un programador, entonces ya debe estar familiarizado con los operadores de comparación, pero los que no lo están, permítanme explicarles en la sección siguiente.

¿Qué son los operadores de comparación en Awk?

Los operadores de comparación en Awk se utilizan para comparar el valor de números o cadenas e incluyen lo siguiente:

  1. >-mayor que
  2. <-menor que
  3. > =-mayor o igual que
  4. <=-menor o igual que
  5. ==-igual a
  6. ! =-no es igual a
  7. algún_valor ~/patrón/-verdadero si algún_valor coincide con el patrón
  8. algún_valor! ~/patrón/-verdadero si algún_valor no coincide con el patrón

Ahora que hemos visto los distintos operadores de comparación en Awk, comprendamos mejor con un ejemplo.

En este ejemplo, tenemos un archivo llamado food_list.txt. que es una lista de compras para diferentes alimentos y me gustaría marcar los alimentos cuya cantidad es menor o igual a 20 agregando (**) al final de cada línea.

Archivo-food_list.txt No Item_Name Cantidad Precio 1 Mangos 45 $ 3.45 2 Manzanas 25 $ 2.4 5 3 Piñas 5 $ 4.45 4 Tomates 25 $ 3.45 5 Cebollas 15 $ 1.45 6 Plátanos 30 $ 3.45 freestar.config.enabled_slots.push

La sintaxis general para usar operadores de comparación en Awk es:

# expresión acciones;

Para lograr el objetivo anterior, tendré que ejecutar el siguiente comando:

# awk ‘$ 3 <= 30 printf "% s \ t% s \ n ", $ 0," ** "; $ 3> 30 print $ 0; ‘food_list.txt. No Item_Name` Cantidad Precio 1 Mangos 45 $ 3.45 2 Manzanas 25 $ 2.45 ** 3 Piñas 5 $ 4.45 ** 4 Tomates 25 $ 3.45 ** 5 Cebollas 15 $ 1.45 ** 6 Bananas 30 $ 3.45 **

En el ejemplo anterior, ocurren dos cosas importantes:

  1. La primera expresión action; . combinación, $ 3 <= 30. printf “% s \ t% s \ n”, $ 0, “**”; . imprime líneas con una cantidad menor o igual a 30. y agrega un (**). al final de cada línea. Se accede al valor de la cantidad mediante la variable de campo $ 3.
  2. La segunda expresión action; . combinación, $ 3> 30. imprimir $ 0;. imprime líneas sin cambios ya que su cantidad es mayor que 30.

Un ejemplo más:

# awk ‘$ 3 <= 20 printf "% s \ t% s \ n", $ 0, "CIERTO" ; $ 3> 20 print $ 0; ‘food_list.txt. No Item_Name Cantidad Precio 1 Mangos 45 $ 3.45 2 Manzanas 25 $ 2.45 3 Piñas 5 $ 4.45 TRUE 4 Tomates 25 $ 3.45 5 Cebollas 15 $ 1.45 TRUE 6 Plátanos 30 $ 3.45

En este ejemplo, queremos indicar líneas con una cantidad menor o igual a 20. con la palabra (VERDADERO). al final.

Resumen

Este es un tutorial de introducción a los operadores de comparación en Awk. por lo tanto, debe probar muchas otras opciones y descubrir más.

En caso de que surja algún problema o cualquier adición que tenga en mente, luego deje un comentario en la sección de comentarios a continuación. Recuerde leer la siguiente parte de la serie Awk, donde lo guiaré a través de expresiones compuestas.