Instructions conditionnelles dans awk
- 4514
- 931
- Jeanne Dupont
Les déclarations conditionnelles sont l'une des caractéristiques les plus puissantes de AWK, permettant aux utilisateurs d'exécuter différentes commandes en fonction des valeurs des variables ou des expressions. Cela permet la création d'une logique complexe dans les scripts awk et facilite les performances des tâches de traitement de texte avancées.
Dans ce tutoriel, nous couvrirons les bases des déclarations conditionnelles dans AWK, y compris la syntaxe et l'utilisation de la déclaration «if-else». Par exemple:
- Instructions if-else avec awk
- Instruction de commutation avec awk
- Opérateurs ternaires avec awk
Instruction if-else avec awk
Le 'sinon' La déclaration est une déclaration conditionnelle de base dans awk. Il vous permet de spécifier différentes commandes à exécuter en fonction d'une condition particulière. La syntaxe pour le 'sinon' La déclaration est la suivante:
if (condition) # commandes pour exécuter si la condition est vraie else # commandes pour exécuter si la condition est fausse123456 | if (condition) # commandes pour exécuter si la condition est vraie else # commandes pour exécuter si la condition est fausse |
Ici, 'condition' est une expression booléenne qui évalue à la vraie ou au faux. Si la condition est vraie, les commandes à l'intérieur des accolades bouclées suivent 'si' sont exécutés. Si la condition est fausse, les commandes à l'intérieur des accolades bouclées suivent 'autre' sont exécutés.
Par exemple, disons que nous avons un fichier contenant une liste de nombres, et nous voulons imprimer les nombres supérieurs à 10. Nous pouvons utiliser le 'sinon' Déclaration pour accomplir cette tâche comme suit:
awk 'if ($ 1> 10) print $ 1' nombres.SMS1 | awk 'if ($ 1> 10) print $ 1' nombres.SMS |
Ici le 'si' La déclaration vérifie si le premier champ (1 $) est supérieur à 10. Si c'est le cas, le numéro est imprimé. Si ce n'est pas le cas, rien ne se passe.
Vous pouvez également utiliser le 'sinon' déclaration pour effectuer des tâches plus complexes. Par exemple, disons que nous avons un fichier contenant une liste de noms d'utilisateurs et de leur âge, et que nous voulons imprimer les noms d'utilisateurs d'utilisateurs de plus de 18 ans. Nous pouvons utiliser la déclaration «if-else» pour accomplir cette tâche comme suit:
awk 'if ($ 2> 18) print $ 1 else print "L'utilisateur n'est pas assez vieux"' utilisateurs.SMS1 | awk 'if ($ 2> 18) print $ 1 else print "L'utilisateur n'est pas assez vieux"' utilisateurs.SMS |
Ici le 'si' La déclaration vérifie si le deuxième champ (2 $) est supérieur à 18. Si c'est le cas, le nom d'utilisateur est imprimé. Si ce n'est pas le cas, la chaîne «L'utilisateur n'est pas assez ancienne» est imprimé.
Instruction de commutation avec awk
Le 'changer' L'instruction dans awk vous permet d'exécuter différentes commandes en fonction de plusieurs conditions. Il fournit un moyen plus concis d'exprimer plusieurs 'sinon' affirmations. La syntaxe pour le 'changer' La déclaration est la suivante:
switch (variable) Case Value1: # Commandes à exécuter si variable == Value1 Break Case Value2: # Commandes à exécuter si variable == Value2 Break… Default: # Commandes pour exécuter si aucun des cas ne correspond1234567891011 | Switch (variable) Case Value1: # Commandes à exécuter si variable == valeur1 casse de cas Valeur 2: # Commandes à exécuter si variable == value2 Break ... Par défaut: # Commandes pour exécuter si aucun des cas ne correspond |
Ici, 'variable' est la variable ou l'expression que vous souhaitez comparer avec différentes valeurs. 'Value1', 'Value2', etc. sont les différentes valeurs auxquelles vous souhaitez comparer. Le 'casser' La déclaration est utilisée pour quitter le 'changer' déclaration après un match trouvé. Le 'défaut' Le mot-clé est utilisé pour spécifier des commandes pour exécuter si aucun des cas ne correspond.
Par exemple, disons que nous avons un fichier contenant une liste de langages de programmation, et que nous voulons imprimer le nom du langage de programmation en fonction de l'extension de fichier. Nous pouvons utiliser le 'changer' Déclaration pour accomplir cette tâche comme suit:
awk 'switch ($ nf) case "py": print "python"; casser; case "RB": imprimer "Ruby"; casser; case "js": imprimer "javascript"; casser; Par défaut: Imprimez les langues "inconnus" '.SMS1 | awk 'switch ($ nf) case "py": print "python"; casser; case "RB": imprimer "Ruby"; casser; case "js": imprimer "javascript"; casser; Par défaut: Imprimez les langues "inconnus" '.SMS |
Ici, nous utilisons le 'changer' déclaration pour comparer le dernier champ ($ Nf) contre différentes valeurs («py», «rb», «js»). Si la valeur correspond, nous imprimons le nom du langage de programmation. Si cela ne correspond pas, nous imprimons "Inconnu".
Opérateurs ternaires avec awk
Le «opérateur ternaire» In awk est une version abrégée du 'sinon' déclaration. Il vous permet d'effectuer une opération IF-Else simple en une seule ligne. La syntaxe de l'opérateur ternaire est la suivante:
(condition) ? vraie valeur: fausse valeur1 | (condition) ? vraie valeur: fausse valeur |
Ici, 'condition'est l'expression booléenne que vous souhaitez évaluer. 'vraie valeur' est la valeur à retourner si la condition est vraie. 'fausse valeur' est la valeur à retourner si la condition est fausse.
Par exemple, disons que nous avons un fichier contenant une liste de nombres, et que nous voulons imprimer "Même" Si le nombre est égal, et "Impair" Si le nombre est étrange. Nous pouvons utiliser l'opérateur ternaire pour accomplir cette tâche comme suit:
awk 'print ($ 1% 2 == 0) ? "Même": "Odd" 'Nombres.SMS1 | awk 'print ($ 1% 2 == 0) ? "Même": "Odd" 'Nombres.SMS |
Ici, nous utilisons l'opérateur ternaire pour vérifier si le numéro dans le premier champ (1 $) est uniforme ou étrange. Si c'est même, nous imprimons "Même". Si c'est étrange, nous imprimons "Impair".
Conclusion
En conclusion, les déclarations conditionnelles sont une caractéristique puissante de AWK qui permette aux utilisateurs d'effectuer des tâches de traitement de texte avancées. Le 'sinon' L'instruction est une déclaration conditionnelle de base qui vous permet d'exécuter différentes commandes en fonction d'une condition particulière. En maîtrisant le 'sinon' Déclaration et autres déclarations conditionnelles, vous pouvez devenir plus efficace et efficiente dans votre script awk et accomplir facilement des tâches de traitement de texte complexes.