Syntaxe:
La syntaxe pour quatre types d'instructions conditionnelles est mentionnée ci-dessous.
if (condition)
déclaration
L'instruction s'exécute lorsque la condition IF renvoie true.
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.
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.
(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.
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.