Comment utiliser l'instruction conditionnelle dans la commande awk

Comment utiliser l'instruction conditionnelle dans la commande awk
L'énoncé conditionnel est utilisé dans n'importe quel langage de programmation pour exécuter toute instruction basée sur une condition particulière. L'instruction conditionnelle s'exécute en fonction de la valeur true ou false lorsque des instructions IF-else et if-elseif sont utilisées pour écrire l'instruction conditionnelle dans la programmation. AWK prend en charge tous les types d'instructions conditionnelles comme d'autres langages de programmation. La façon dont différentes instructions conditionnelles peuvent être utilisées dans la commande awk est indiquée dans ce tutoriel.

Syntaxe:

La syntaxe pour quatre types d'instructions conditionnelles est mentionnée ci-dessous.

  1. Si déclaration
if (condition)
déclaration

L'instruction s'exécute lorsque la condition IF renvoie true.

  1. Énoncé IF-ELSE
if (condition)
déclaration-1

autre
déclaration-2

L'instruction-1 s'exécute lorsque la condition IF est vraie et l'instruction-2 s'exécute quand si return false.

  1. Énoncé IF-ELSEIF
if (condition)
déclaration-1

elseif
déclaration-2

elseif
déclaration-3

… .
autre
déclaration-n

Cette déclaration conditionnelle est utilisée pour exécuter une instruction basée sur plusieurs conditions. Si la première condition est fausse, il vérifie la deuxième condition. Si la deuxième condition est fausse, il vérifie la troisième condition et ainsi de suite. Si toutes les conditions renvoient fausses, il exécutera l'énoncé de la partie autre.

  1. Ternaire (?:) opérateur
(condition) ? déclaration-1: déclaration-2

L'opérateur ternaire peut être utilisé comme alternative de la déclaration IF-Else. Si la condition est vraie, l'instruction-1 s'exécutera et si la condition est fausse, alors instruction-2 exécutera.

Exemple-1: Utilisation simple si dans awk

Créer un fichier texte nommé entretien.SMS avec le contenu suivant. Supposons que vous deviez découvrir le nom du département, l'âge et le salaire de l'employé dont l'identification est 11002.

employé.SMS

11001 ventes 45 $ 3000
11002 HR 32 1500 $
11003 marketing 26 1200 $
11004 HR 25 2500 $

Une condition si simple est utilisée dans le script suivant pour rechercher l'ID 11002 dans le premier champ du fichier. Si la condition devient vraie, elle imprimera les valeurs des autres champs de la ligne correspondante sinon rien ne sera imprimé.

$ awk '
si (1 $ == "11002")

Imprimer "Nom du département:", 2 $, "\ n";
Imprimer "Age:", 3 $, "\ n";
Imprimer "Salaire:", 4 $, "\ n";

' employé.SMS

Sortir:

L'ID, 1102 existe dans le fichier. Donc, il a imprimé les autres valeurs de l'employé.

Exemple-2: Utilisation de if-else dans awk

Supposons que vous souhaitez imprimer les informations sur les salaires des employés dont l'âge est inférieur ou égal à 40 et imprimer les informations d'âge pour les autres employés. Le script awk suivant peut faire cette tâche. Il n'y a qu'un seul employé dans employé.SMS dossier dont l'âge est supérieur à 40 ans et tous les autres employés sont inférieurs à 40.

$ awk '
Si (3 $ <= 40)

Imprimez "le salaire de", 1 $ "," est ", 4 $," \ n "

autre

Imprimez "l'âge de", 1 $, "est", 3 $, "\ n"

' employé.SMS

Sortir:

La sortie suivante apparaîtra après l'exécution du script.

Exemple-3: Utilisation de if-elseif dans le script awk

Créer un fichier texte nommé personne.txt avec le contenu suivant.

personne.SMS

Business masculin Jackson
Porte-services masculins Martin
Femelle de Lily
PDG masculin de Robinson

Créer un fichier awk nommé if_elseif.awk avec le code suivant pour imprimer la couleur préférée de chaque personne dont le nom existe dans le fichier. L'instruction IF-ELSEIF est utilisée dans le script pour effectuer cette tâche. Le script lira la première valeur de champ du fichier, employé.SMS et vérifier avec une valeur particulière. Si le premier si La condition devient fausse puis elle vérifiera la seconde si état et ainsi de suite. Lorsque la condition si la condition devient vraie, une valeur de couleur sera attribuée. Si toutes les conditions deviennent fausses alors Aucun sera attribué comme valeur de couleur. La couleur préférée de chaque personne imprimera ou "Personne trouvé" Imprimera si personne ne correspond au nom.

if_elseif.awk


nom = 1 $;
if (name == "jackson") color = "bleu";
else if (name == "martin") color = "noir";
else if (name == "Lily") color = "red";
else if (name == "Robinson") color = "blanc";
else color = "aucun";
Si (couleur!= "None") Imprimer "La couleur préférée de", name, "est", couleur;
sinon imprimer "personne trouvé";

Exécutez la commande suivante pour exécuter le fichier if_elseif.awk avec personne.SMS

$ awk -f if_elseif.personne awk.SMS

Sortir:

La sortie suivante apparaîtra après l'exécution de la commande.

Exemple-4: Utilisation de l'opérateur ternaire dans awk

Le troisième champ de personne.SMS Le fichier contient la profession de chaque personne. L'opérateur ternaire suivant lit chaque ligne du fichier et correspond à la troisième valeur de champ avec «Directeur". Si la valeur correspond, elle imprimera le nom de la personne et sinon elle imprimera le sexe de la personne.

$ awk 'print ($ 3 == "manager") ? "Le nom est" $: "Sexe est" 2 $ 'personne.SMS

Sortir:

La sortie suivante apparaîtra après avoir exécuté le script. Une personne avec «la profession de gestionnaire existe dans le personne.SMS. Ainsi, le nom d'une personne est imprimé et le sexe est imprimé pour d'autres personnes.

Exemple 5: Utilisation de plusieurs conditions dans IF instruction

Logique ou logique et peut être utilisé pour définir plusieurs conditions dans l'instruction conditionnelle du script awk. Le script awk suivant lit chaque ligne de employé.SMS et vérifie l'âge et la désignation avec des valeurs particulières. Logique et est utilisé dans le si condition. Lorsque la valeur de l'âge est supérieure ou égale à 30 et que la désignation est «HR», l'ID et le salaire d'employé correspondant imprimeront.

$ awk 'if ($ 3> = 30 && $ 2 == "hr") imprimer "ID de l'employé:",
1 $, "et", "salaire:", 4 $, "\ n"; 'employé.SMS

Sortir:

La sortie suivante apparaîtra après avoir exécuté le script. Il n'y a qu'un seul employé existe avec la désignation, «RH» employé.SMS. Les informations sur l'identification et le salaire de cet employé sont imprimées ici.

Conclusion:

Les utilisations les plus courantes de l'instruction conditionnelle de toute programmation standard sont prises en charge par la commande awk. Comment vous pouvez utiliser des conditions uniques et multiples dans AWK est expliquée en utilisant des exemples très simples ici. Hope après avoir pratiqué ces exemples, l'apprenant pourra utiliser correctement la déclaration conditionnelle dans le script awk.