Comment utiliser les opérateurs de comparaison avec AWK dans Linux - partie 4

Comment utiliser les opérateurs de comparaison avec AWK dans Linux - partie 4

Lorsque vous traitez avec des valeurs numériques ou de chaîne dans une ligne de texte, le filtrage du texte ou des chaînes à l'aide d'opérateurs de comparaison est utile pour Awk utilisateurs de commandement.

Dans cette partie de la série AWK, nous examinerons comment vous pouvez filtrer le texte ou les 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 ceux qui ne le sont pas, laissez-moi vous expliquer dans la section ci-dessous.

Que sont les opérateurs de comparaison dans awk?

Les opérateurs de comparaison dans AWK sont utilisés pour comparer la valeur des nombres ou des chaînes et ils incluent les éléments suivants:

  1. > - plus grand que
  2. < - moins que
  3. > = - Plus grand ou égal à
  4. <= - inférieur ou égal à
  5. == - égal à
  6. != - pas égal à
  7. quelque_value ~ / motif / - vrai si certains_value correspondent au modèle
  8. certains_values !~ / motif / - vrai si certains_values ​​ne correspondent pas au modèle

Maintenant que nous avons examiné les différents opérateurs de comparaison dans AWK, permettez-nous de mieux les comprendre en utilisant un exemple.

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

Fichier - Food_list.SMS
Pas d'élément_name Prix de quantité 1 mangues 45 3 $.45 2 pommes 25 2 $.45 3 ananas 5 4 $.45 4 Tomates 25 3 $.45 5 oignons 15 1 $.45 6 bananes 30 3 $.45 

La syntaxe générale pour l'utilisation des opérateurs de comparaison dans AWK est:

# expression actions;  

Pour atteindre l'objectif ci-dessus, je devrai exécuter la commande ci-dessous:

# awk '$ 3 30 print $ 0;' food_list.SMS NO ITEM_NAME 'Prix de quantité 1 Mango 45 3 $.45 2 pommes 25 2 $.45 ** 3 ananas 5 4 $.45 ** 4 tomates 25 3 $.45 ** 5 oignons 15 1 $.45 ** 6 bananes 30 3 $.45 ** 

Dans l'exemple ci-dessus, il y a deux choses importantes qui se produisent:

  1. La première expression action ; combinaison, 3 $ <= 30 printf «% s \ t% s \ n», 0 $ », **»; imprime les lignes avec une quantité inférieure ou égale à 30 et ajoute un (**) À la fin de chaque ligne. La valeur de la quantité est accessible en utilisant 3 $ variable de champ.
  2. La deuxième expression action ; combinaison, 3 $> 30 imprimer 0 0; imprime les lignes inchangées car leur quantité est plus élevée alors 30.

Un autre exemple:

# awk '$ 3 20 print $ 0;' food_list.SMS  Pas d'élément_name Prix de quantité 1 mangues 45 3 $.45 2 pommes 25 2 $.45 3 ananas 5 4 $.45 Vrai 4 Tomates 25 3 $.45 5 oignons 15 1 $.45 Vrai 6 bananes 30 3 $.45 

Dans cet exemple, nous voulons indiquer des lignes avec une quantité moins ou égale à 20 avec le mot (VRAI) à la fin.

Résumé

Ceci est un tutoriel d'introduction aux opérateurs de comparaison dans Awk, par conséquent, vous devez essayer de nombreuses autres options et en découvrir plus.

En cas de problèmes auxquels vous êtes confrontés ou des ajouts que vous avez en tête, alors 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 vais vous emmener à travers des expressions composées.