Awk

Comment utiliser la variable dans la commande awk

Comment utiliser la variable dans la commande awk
Les variables sont utilisées pour stocker n'importe quelle valeur temporaire dans n'importe quel langage de programmation.  La définition de la variable dans la commande awk est similaire au langage de script bash et cela fonctionne comme bash lorsque la variable shell est utilisée avec un guillemet simple et un guillemet double. La commande Awk a de nombreuses variables intégrées à des fins diverses. La façon dont les variables définies par l'utilisateur, intégrées et shell peuvent être utilisées dans la commande awk est illustrée dans ce didacticiel à l'aide de différents exemples.

Eexemple -1 : définir et imprimer la variable

La commande 'awk' utilise l'option '-v' pour définir la variable. Dans cet exemple, le mavar la variable est définie dans la commande 'awk' pour stocker la valeur, « Variable AWK » qui est imprimé plus tard. Exécutez la commande suivante depuis le terminal pour vérifier la sortie.

$ echo | awk -v mavar='AWK variable' 'imprimer mavar'

Production:

Exemple - 2: Utilisation de la variable shell dans awk avec un guillemet simple et un guillemet double

L'exemple montre comment la variable shell peut être utilisée dans la commande 'awk'. Ici, une variable shell, mavar est déclaré avec la valeur, « Astuce Linux » dans la première commande. Le symbole '$' est utilisé avec un nom de variable shell pour lire la valeur. La deuxième commande lit la variable, $myval avec un guillemet simple (') et la troisième commande lit la variable $myvar avec un guillemet double(“) dans l'instruction 'awk'.

$ myvar="Astuce Linux"
$ echo | awk -v awkvar='$mavar' ' print awkvar; '
$ echo | awk -v awkvar="$myvar" ' print awkvar; '

Production:

Il est indiqué dans la sortie que la valeur de $myvar ne peut pas être lue lorsqu'elle est entourée d'un guillemet simple (') et que la sortie est $myvar. La valeur de $myvar est imprimé lorsqu'il est entouré d'un guillemet double (").

Exemple - 3: Lecture de la variable ARGC dans awk

La variable ARGC est utilisée pour compter le nombre total d'arguments de ligne de commande. Trois variables d'arguments de ligne de commande (t1, t2, t3) sont passées dans le script awk suivant. Ici, le nombre total d'arguments avec le script est de 4. Exécutez le script depuis le terminal.

$ awk 'BEGINprint "Total arguments=",ARGC' t1 t2 t3

Production:

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

Exemple - 4 : Lecture du contenu du fichier par des variables d'argument

Créer un fichier texte nommé client.SMS avec le contenu suivant pour mettre en pratique cet exemple. Ici, chaque champ du fichier est séparé par un seul languette espace.

client.SMS

ID        Nom
103847    John Michael
209485    Watson
974732    Mira Hossain

La commande Awk peut lire chaque champ de n'importe quel fichier texte par des variables d'argument. Il y a deux champs dans client.SMS déposer. Ce sont l'ID et le nom. Le script suivant imprimera ces deux champs par variables d'argument, 1 $ et 2 $ en séparant deux languette les espaces. Exécutez le script depuis le terminal.

$ chat client.SMS
$ chat client.txt | awk ' print $1 "\t\t" $2;'

Production:

La sortie suivante apparaîtra après avoir exécuté les commandes ci-dessus.

Exemple 5 : Utilisation de la variable intégrée, de l'option FS et du séparateur de champs avec la commande awk

La variable FS est utilisée dans la commande awk comme séparateur de champs. L'espace est utilisé comme valeur par défaut de FS. La commande suivante va lire le fichier client.SMS utiliser l'espace comme séparateur de champs et imprimer le contenu du fichier. Exécutez la commande depuis le terminal.

$ awk client FS.SMS

Production:

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

La commande Awk peut utiliser d'autres caractères comme séparateur de champs en utilisant l'option '-F'. Créer un fichier texte nommé produit.SMS avec le contenu suivant où ':' est utilisé comme séparateur de champs.

produit.SMS

101 : Gâteau : 30 $
102 : Crayon : 5 $
103 : Savon : 3 $
104 : Shampoing : 10 $

Il y a trois champs dans le fichier, produit.SMS qui contient l'identifiant du produit, le nom et le prix. La commande awk suivante n'imprimera que le deuxième champ de chaque ligne. Exécuter les commandes depuis le terminal.

$ produit pour chat.SMS
$ awk -F ':' ' print $2 ' produit.SMS

Production:

Ici, la première commande a imprimé le contenu de produit.SMS et la deuxième commande n'imprimait que le deuxième champ du fichier.

Exemple - 6 : Utilisation de la variable intégrée, NR avec la commande awk

La variable NR est utilisée dans la commande awk pour compter le nombre total d'enregistrements ou de lignes d'un fichier. Créer un fichier texte nommé élève.SMS pour tester la fonction de cette variable.

élève.SMS

Nom      Lot     Semestre
Jean      20        3
Mira      22        1
Ella      18
Charles    15        8

Le script awk suivant imprimera les trois premières lignes de produit.SMS déposer. Ici, une condition est ajoutée en utilisant la variable NR. La commande imprimera les lignes où la valeur NR est inférieure à 4. Exécutez le script depuis le terminal.

Production:

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

$ chat étudiant.txt | awk 'NR < 4'

Exemple - 7 : Utilisation de la variable intégrée, NF avec la commande awk

La variable NF est utilisée dans la commande awk pour compter le nombre total de champs dans chaque ligne d'un fichier. Le script awk suivant est appliqué pour le fichier, élève.SMS qui est créé dans l'exemple précédent. Le script imprimera ces lignes depuis élève.SMS fichier où le total des champs est inférieur à 3. Exécutez la commande depuis le terminal.

$ chat étudiant.txt | awk 'NF < 3'

Production:

Il n'y a qu'une seule ligne dans le fichier où le nombre total de champs est inférieur à 3 qui est imprimé en sortie.

Exemple - 8 : Utilisation d'une variable intégrée, OFS avec la commande awk

La variable OFS est utilisée dans la commande awk pour ajouter un séparateur de champ de sortie dans la sortie. produit.SMS est utilisé dans cet exemple pour montrer l'utilisation de la variable OFS. ':' est utilisé comme séparateur de champs dans le produit.fichier txt. Le script awk suivant utilise '->' comme valeur OFS et, les deuxième et troisième champs du fichier s'imprimeront en ajoutant ce séparateur. Exécuter les commandes depuis le terminal.

$ produit pour chat.SMS
$ awk -F ':' 'BEGINOFS="->"; print $2,$3;' produit.SMS

Production:

La sortie suivante s'imprimera après l'exécution des commandes.

Conclusion:

Les utilisations les plus courantes des variables awk sont expliquées dans ce tutoriel. J'espère que le lecteur pourra utiliser correctement les variables awk dans le script après avoir pratiqué ce tutoriel.

Top 5 des cartes de capture de jeu
Nous avons tous vu et aimé des gameplays en streaming sur YouTube. PewDiePie, Jakesepticye et Markiplier ne sont que quelques-uns des meilleurs joueur...
Comment développer un jeu sur Linux
Il y a dix ans, peu d'utilisateurs de Linux prédisaient que leur système d'exploitation préféré serait un jour une plate-forme de jeu populaire pour l...
Ports Open Source des moteurs de jeux commerciaux
Les récréations de moteur de jeu gratuites, open source et multiplateformes peuvent être utilisées pour jouer à d'anciens ainsi qu'à certains des titr...