Recherche de site Web

Comment utiliser les opérateurs de comparaison avec awk sous Linux - Partie 4


Lorsqu’il s’agit de valeurs numériques ou de chaînes dans une ligne de texte, le filtrage du texte ou des chaînes à l’aide d’opérateurs de comparaison est pratique pour les utilisateurs de la commande awk.

Dans cette partie de la série Awk, nous allons voir comment vous pouvez filtrer du texte ou des chaînes à l’aide d’opérateurs de comparaison.

Si vous êtes programmeur, vous devez déjà être familier avec les opérateurs de comparaison, mais pour ceux qui ne le sont pas, laissez-moi vous expliquer dans la section ci-dessous.

Que sont les opérateurs de comparaison dans Awk ?

Avant de plonger dans l’utilisation des opérateurs de comparaison avec Awk, comprenons d’abord ce que sont les opérateurs de comparaison.

Les opérateurs de comparaison sont des symboles ou des mots-clés utilisés pour comparer des valeurs dans les langages de programmation.

Dans Awk, les opérateurs de comparaison sont souvent utilisés pour comparer la valeur de nombres ou de chaînes et ils incluent les éléments suivants :

  • > – supérieur à
  • < – moins de
  • >= – supérieur ou égal à
  • <= – inférieur ou égal à
  • == – égal à
  • != – différent de
  • some_value ~/pattern/ – true si some_value correspond au motif
  • some_value !~/pattern/ – true si some_value ne correspond pas au motif

Maintenant que nous avons examiné les différents opérateurs de comparaison dans Awk, comprenons-les mieux à l’aide d’un exemple.

Filtrage des données avec Awk

Dans cet exemple, nous avons un fichier nommé food_list.txt qui est une liste de courses pour différents aliments et je voudrais marquer les aliments dont la quantité est inférieure ou égale à 20 en ajoutant (**) à la fin de chaque ligne.

No      Item_Name               Quantity        Price
1       Mangoes                    45           $3.45
2       Apples                     25           $2.45
3       Pineapples                 5            $4.45
4       Tomatoes                   25           $3.45
5       Onions                     15           $1.45
6       Bananas                    30           $3.45

La syntaxe générale d’utilisation des opérateurs de comparaison dans Awk est la suivante :

expression { actions; }

Pour atteindre l’objectif ci-dessus, je vais devoir exécuter la commande ci-dessous :

awk '$3 <= 20 {print $0 " (**)" } $3 > 20 {print $0}' food_list.txt

Voici l’explication de la commande :

  • awk – Cette commande appelle l’utilitaire de traitement de texte Awk.
  • '$3 <= 20 {print $0 " (**) » } – Cette partie de la commande est une condition suivie d’une action. Il vérifie si la valeur de la troisième colonne (Quantité) de chaque ligne est inférieure ou égale à 20. Si la condition est vraie, il imprime la ligne entière ($0) avec « (**) » ajouté.
  • $3 > 20 {print $0} – Cette partie de la commande est une autre condition suivie d’une action. Il vérifie si la valeur de la troisième colonne (Quantité) de chaque ligne est supérieure à 20. Si la condition est vraie, il imprime la ligne entière ($0) sans aucune modification.
  • food_list.txt – Il s’agit du fichier d’entrée que la commande Awk va traiter. Il contient les données sur lesquelles les conditions et les actions spécifiées dans la commande seront appliquées.

Un autre exemple consiste à marquer des lignes dont la quantité est inférieure ou égale à 20 avec le mot « (TRUE) » à la fin.

awk '$3 <= 20 { printf "%s\t%s\n", $0,"TRUE" ; } $3 > 20  { print $0 ;} ' food_list.txt

Combiner les opérateurs dans awk

Nous pouvons également combiner plusieurs opérateurs de comparaison pour créer des conditions plus complexes. Par exemple, si nous voulons filtrer les aliments dont la quantité est comprise entre 20 et 50, nous pouvons utiliser l’opérateur logique AND (&&) comme indiqué.

awk '$3 >= 20 && $3 <= 50' food_list.txt

La commande ci-dessus imprimera les lignes dont la quantité (troisième colonne) se situe entre 20 et 50.

Résumé

Il s’agit d’un tutoriel d’introduction aux opérateurs de comparaison dans Awk, vous devez donc essayer de nombreuses autres options et en découvrir davantage.

Pour ceux qui recherchent une ressource complète, nous avons compilé tous les articles de la série Awk dans un livre, qui comprend 13 chapitres et s’étend sur 41 pages, couvrant à la fois l’utilisation de base et avancée d’Awk avec des exemples pratiques.

Nom du produitPrixAcheter
eBook : Présentation du guide de démarrage Awk pour les débutants8,99 $[Acheter maintenant]

En cas de problèmes que vous rencontrez ou d’ajouts que vous avez en tête, laissez un commentaire dans la section des commentaires ci-dessous. N’oubliez pas de lire la prochaine partie de la série Awk où je vous présenterai des expressions composées.

Articles connexes: