Comment utiliser la variable dans la commande awk

Comment utiliser la variable dans la commande awk
Les variables sont utilisées pour stocker toute valeur temporaire dans tout langage de programmation. La définition de la variable dans la commande awk est similaire à la langue de script bash et qu'elle fonctionne comme bash lorsque la variable de shell est utilisée avec une seule citation et une double citation. La commande awk a de nombreuses variables intégrées à diverses fins. 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 affichée dans ce tutoriel en utilisant différents exemples.

Example -1: Définition et variable d'impression

La commande 'awk' utilise l'option '-v' pour définir la variable. Dans cet exemple, le myvar 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 à partir du terminal pour vérifier la sortie.

$ echo | awk -v myvar = 'variable awk' 'imprimer myvar'

Sortir:

Exemple - 2: Utilisation de la variable shell dans awk avec une seule citation et une double citation

L'exemple montre comment la variable shell peut être utilisée. Ici, une variable de coquille, myvar est déclaré avec la valeur, «Indication 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 une seule citation (') et la troisième commande lit la variable $ myvar avec une double citation (") dans la déclaration' awk '.

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

Sortir:

Il est montré dans la sortie que la valeur de $ myvar ne peut pas être lue lorsqu'elle est enfermée avec un seul devis (') et que la sortie est $ myvar. La valeur de $ myvar est imprimé lorsqu'il est enfermé avec une double citation («).

Exemple - 3: Reading Argc Variable 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 4. Exécutez le script à partir du terminal.

$ awk 'begin imprimer "Total Arguments =", argc' t1 t2 t3

Sortir:

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

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

Créer un fichier texte nommé client.SMS avec le contenu suivant pour pratiquer cet exemple. Ici, chaque champ du fichier est séparé par célibataire languette espace.

client.SMS

Nom d'identité
103847 John Micheal
209485 Watson
974732 Mira Hossain

La commande awk peut lire chaque champ à partir de n'importe quel fichier texte par variables d'argument. Il y a deux champs dans client.SMS déposer. Ce sont des identifiants et du 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 à partir du terminal.

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

Sortir:

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

Exemple - 5: Utilisation de la variable intégrée, FS et option de séparateur de champ avec commande awk

La variable FS est utilisée dans la commande awk comme séparateur de champ. L'espace est utilisé comme valeur par défaut de FS. La commande suivante lira le fichier client.SMS Utilisation de l'espace comme séparateur de champ et imprimez le contenu du fichier. Exécutez la commande à partir du terminal.

Client $ awk fs.SMS

Sortir:

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 champ en utilisant l'option '-f'. Créer un fichier texte nommé produit.SMS avec le contenu suivant où ':' est utilisé comme séparateur de champ.

produit.SMS

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

Il y a trois champs dans le fichier, produit.SMS qui contient l'ID de produit, le nom et le prix. La commande awk suivante imprimera uniquement le deuxième champ de chaque ligne. Exécutez les commandes à partir du terminal.

$ Cat Product.SMS
$ awk -f ':' 'print $ 2' Produit.SMS

Sortir:

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

Exemple - 6: Utilisation de la variable intégrée, NR avec 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é étudiant.SMS pour tester la fonction de cette variable.

étudiant.SMS

Nom du semestre de lot
John 20 3
Mira 22 1
Ella 18
Charle 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 ces lignes où la valeur NR est inférieure à 4. Exécutez le script à partir du terminal.

Sortir:

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

$ étudiant CAT.txt | awk 'nr < 4'

Exemple - 7: Utilisation de la variable intégrée, NF avec 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, étudiant.SMS qui est créé dans l'exemple précédent. Le script imprimera ces lignes de étudiant.SMS fichier où les champs totaux sont inférieurs à 3. Exécutez la commande à partir du terminal.

$ étudiant CAT.txt | awk 'nf < 3'

Sortir:

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

Exemple - 8: Utilisation de la variable intégrée, OFS avec 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 Le fichier est utilisé dans cet exemple pour afficher l'utilisation de la variable OFS. ':' est utilisé comme séparateur de champ dans le produit.fichier txt. Le script awk suivant utilisé '->' As de valeur et, les deuxième et troisième champs du fichier imprimeront en ajoutant ce séparateur. Exécutez les commandes à partir du terminal.

$ Cat Product.SMS
$ awk -f ':' 'begin ofs = "->"; print $ 2, $ 3;' Produit.SMS

Sortir:

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

Conclusion:

Les utilisations les plus courantes des variables awk sont essayées d'expliquer dans ce tutoriel. Hope, le lecteur pourra utiliser correctement les variables awk dans le script après avoir pratiqué ce tutoriel.