Comment utiliser des expressions composées avec awk dans Linux - partie 5

Comment utiliser des expressions composées avec awk dans Linux - partie 5

Tout au long, nous avons examiné des expressions simples lors de la vérification si une condition s'est remplie ou non. Et si vous souhaitez utiliser plus d'une expression pour vérifier une condition particulière dans?

Dans cet article, nous allons examiner la façon dont vous pouvez combiner plusieurs expressions appelées expressions composées pour vérifier une condition lors du filtrage du texte ou des cordes.

Dans Awk, expressions composées sont construits en utilisant le && appelé (et) et le || appelé (ou) opérateurs de composés.

La syntaxe générale pour les expressions composées est:

(first_expression) && (second_expression) 

Ici, First_expression et second_expression doit être vrai pour rendre toute l'expression vraie.

(first_expression) || (second_expression) 

Ici, l'une des expressions First_expression ou second_expression Doit être vrai pour que toute l'expression soit vraie.

Avertir: N'oubliez pas d'inclure toujours la parenthèse.

Les expressions peuvent être construites en utilisant les opérateurs de comparaison que nous avons examinés dans la partie 4 de la série AWK.

Laissez maintenant une compréhension claire en utilisant un exemple ci-dessous:

Dans cet exemple, A a un fichier texte nommé Tecmint_deals.SMS, qui contient une liste de quelques offres Tecmint aléatoires incroyables, il comprend le nom de l'accord, le prix et le type.

Liste des offres Tecmint
Aucun nom de nom Type 1 MAC_OS_X_CLEANUP_SUITE 9 $.99 Software 2 Basics_Notebook 14 $.99 Lifestyle 3 Tactical_pen 25 $.99 Lifestyle 4 Scapple 19 $.00 inconnu 5 nano_tool_pack 11 $.99 Inconnu 6 Ditto_Bluetooth_Altering_Device 33 $.00 Tech 7 nano_prowler_mini_drone 36 $.99 Tech 

Dites que nous ne voulons que des offres imprimées et indiquées qui sont ci-dessus 20 $ et de type "Technologie" en utilisant le (**) signe à la fin de chaque ligne.

Nous devrons exécuter la commande ci-dessous.

# awk '($ 3 ~ / ^ $ [2-9] [0-9] * \.[0-9] [0-9] $ /) && ($ 4 == "Tech") printf "% s \ t% s \ n", 0 0, "*";  'Tecmint_deals.SMS  6 Ditto_Bluetooth_altering_device 33 $.00 Technologie * 7 nano_prowler_mini_drone 36 $.99 Technologie * 

Dans cet exemple, nous avons utilisé deux expressions dans une expression composée:

  1. Première expression, (3 $ ~ / ^ \ $ [2-9] [0-9] * \.[0-9] [0-9] $ /) ; Vérifie les lignes pour les offres avec le prix ci-dessus 20 $, Et ce n'est vrai que si la valeur de 3 $ qui est le prix correspond au modèle / ^ \ $ [2-9] [0-9] * \.[0-9] [0-9] $ /
  2. Et la deuxième expression, (4 $ == «Tech») ; vérifie si l'accord est de type "Technologie" Et ce n'est vrai que si la valeur de 4 $ équivaut à "Technologie".

N'oubliez pas qu'une ligne ne sera signalée qu'avec le (**), si première expression et deuxième expression sont vrais comme états le principe du && opérateur.

Résumé

Certaines conditions nécessitent toujours des expressions composées pour vous pour que vous puissiez correspondre exactement à ce que vous voulez. Lorsque vous comprenez l'utilisation des opérateurs de comparaison et d'expression composée, le filtrage du texte ou des chaînes basés sur certaines conditions difficiles deviendra facile.

J'espère que vous trouverez ce guide utile et pour toutes les questions ou ajouts, n'oubliez pas de laisser un commentaire et que votre préoccupation sera résolue en conséquence.