Cómo usar expresiones compuestas con AWK en Linux - Parte 5

Cómo usar expresiones compuestas con AWK en Linux - Parte 5

Todo el tiempo, hemos estado viendo expresiones simples al verificar si se ha cumplido o no una condición. ¿Qué pasa si desea usar más de una expresión para verificar una condición particular en?

En este artículo, analizaremos cómo puede combinar múltiples expresiones denominadas expresiones compuestas para verificar una condición al filtrar texto o cadenas.

En Asombrar, expresiones compuestas se construyen con el && denominado (y) y el || denominado (o) operadores compuestos.

La sintaxis general para expresiones compuestas es:

(First_Expression) && (Second_Expression) 

Aquí, First_Expression y Second_Expression debe ser verdad para hacer que toda la expresión sea verdadera.

(First_Expression) || (Second_Expression) 

Aquí, una de las expresiones tampoco First_Expression o Second_Expression debe ser cierto para que toda la expresión sea verdadera.

Precaución: Recuerde incluir siempre el paréntesis.

Las expresiones se pueden construir utilizando los operadores de comparación que vimos en la Parte 4 de la serie AWK.

Ahora obtengamos una comprensión clara usando un ejemplo a continuación:

En este ejemplo, tiene un archivo de texto con nombre tecMint_deals.TXT, que contiene una lista de algunas increíbles ofertas aleatorias de TecMint, incluye el nombre del acuerdo, el precio y el tipo.

Lista de tratos de TecMint
Sin nombre Tipo de precio 1 Mac_os_x_cleanup_suite $ 9.99 Software 2 Basics_Notebook $ 14.99 estilo de vida 3 táctico_pen $ 25.99 estilo de vida 4 scapple $ 19.00 desconocido 5 nano_tool_pack $ 11.99 desconocido 6 Ditto_Bluetooth_altering_device $ 33.00 Tech 7 nano_prowler_mini_drone $ 36.99 tecnología 

Digamos que solo queremos acuerdos de impresión y bandera que estén arriba $ 20 y de tipo "Tech" utilizando el (**) firmar al final de cada línea.

Necesitaremos ejecutar el comando a continuación.

# Awk '($ 3 ~ /^$ [2-9] [0-9]*\.[0-9] [0-9] $/) && ($ 4 == "Tech") printf "%s \ t%s \ n", $ 0, "*";  'tecMint_deals.TXT  6 ditto_bluetooth_altering_device $ 33.00 Tecnología * 7 nano_prowler_mini_drone $ 36.99 Tecnología * 

En este ejemplo, hemos usado dos expresiones en una expresión compuesta:

  1. Primera expresión, ($ 3 ~ /^\ $ [2-9] [0-9]*\.[0-9] [0-9] $/) ; Verifica las líneas para las líneas con el precio anterior $ 20, y solo es cierto si el valor de $ 3 cuál es el precio coincide con el patrón /^\ $ [2-9] [0-9]*\.[0-9] [0-9] $/
  2. Y la segunda expresión, ($ 4 == "Tech") ; Comprueba si el trato es de tipo "Tech" y solo es cierto si el valor de $ 4 igual a "Tech".

Recuerde, una línea solo se marcará con el (**), si Primera expresión y segunda expresión son ciertos como estados el principio del && operador.

Resumen

Algunas condiciones siempre requieren expresiones compuestas de construcción para que coincidan exactamente con lo que desea. Cuando comprenda el uso de operadores de comparación y expresión compuesta, filtrar texto o cadenas basadas en algunas condiciones difíciles será fácil.

Espero que encuentre esta guía útil y para cualquier pregunta o adición, recuerde siempre dejar un comentario y su preocupación se resolverá en consecuencia.