Instructions conditionnelles dans awk

Instructions conditionnelles dans awk

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:

  1. Instructions if-else avec awk
  2. Instruction de commutation avec awk
  3. 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 fausse
123456if (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.SMS
1awk '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.SMS
1awk '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 correspond
1234567891011Switch (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" '.SMS
1awk '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 valeur
1(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.SMS
1awk '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.