Comment utiliser pour Loop dans la commande awk

Comment utiliser pour Loop dans la commande awk
LOOP est utilisé pour exécuter plusieurs instructions plusieurs fois. L'itération de la boucle en fonction de la condition de terminaison ou du nombre d'éléments de tableau. Trois types de boucles sont soutenues par n'importe quel langage de programmation. Car Loop est l'un d'eux. Car Loop peut être déclaré de deux manières. Simple for Loop contient trois parties. Et un autre pour Loop est pour une boucle pour itération de toute liste de données ou de tableau. Ce tutoriel montre l'utilisation de ces deux types de boucles dans la commande awk en utilisant divers exemples.

Syntaxe:

  1. pour la déclaration de boucle:
pour (initialisation; condition de terminaison; incrément / décrément)
affirmations

La première partie est utilisée pour initialiser la variable de démarrage pour boucle. La deuxième partie contient la condition de terminaison pour contrôler l'itération de la boucle et la boucle se poursuivra jusqu'à ce que la condition soit vraie. La dernière partie augmentera ou diminuera la variable d'initialisation en fonction de la première partie.

  1. Déclaration pour
pour (variable dans le tableau / liste)
affirmations

en avant La boucle est utilisée pour effectuer ces tâches où le nombre d'itération de la boucle n'est pas fixe. en avant la boucle est principalement utilisée pour analyser un tableau ou une liste de données. La boucle lit chaque données du tableau ou de la liste et stocke la valeur à une variable dans chaque itération.

Exemple-1: Utilisation simple pour la boucle

Un simple pour la boucle est utilisé dans le script suivant. Ici, comptoir la variable est initialisée par 10 et la boucle se terminera lorsque la valeur de comptoir est moins de 5. Le script imprimera le comptoir Valeurs de 10 à 5. Exécutez la commande à partir du terminal.

$ echo | awk 'for (compter = 10; counter> = 5; counter--)
Imprimer "Running for", Counter, "Times."," \ n "; '

Sortir:

La sortie suivante apparaîtra après avoir exécuté la commande.

Exemple-2: Utilisation de boucle pour lire un tableau

Un tableau nommé client est déclaré dans le script suivant où le client identifiant est défini comme un index de tableau et le client nom est défini sous forme de valeur de tableau. en avant LOOP est utilisé ici pour itérer chaque index du tableau et imprimer le nom du client. Exécutez le script à partir du terminal.

$ echo | awk 'begin client ["4587"] = "Neil Johnson";
Client ["8953"] = "Ella Binte Nazir";
Client ["3455"] = "Bruce Hyslop";
Client ["6335"] = "Isabella";
Fin pour (i en client)
Imprimez "le nom de", i "est", client [i]
'

Sortir:

La sortie suivante apparaîtra après avoir exécuté le script.

Exemple-3: Utilisation de Nested for Loop

Lorsqu'une boucle pour une boucle est déclarée sous un autre pour une boucle, elle s'appelle imbriquée pour la boucle. La boucle extérieure utilisée dans ce script itérera 2 fois et la boucle intérieure iratera 3 fois. Ainsi, l'instruction IMPRESS sera exécutée pour, (2x3 = 6) 6 fois. Exécutez le script à partir du terminal.

$ echo | awk 'end for (i = 1; i<=2; i++)
pour (j = 1; j<=3; j++)
imprimer "iterating row", i, et colonne ", j," \ n "; '

Sortir:

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

Exemple-4: Utilisation de la boucle avec une déclaration de pause

casser La déclaration est utilisée dans n'importe quelle boucle pour terminer la boucle avant d'atteindre la condition de terminaison en fonction de la condition particulière. Dans le script suivant, pour Loop commencera à partir de 3 et il se terminera quand la valeur de je est supérieur à 20. Mais quand la valeur de je sera égal à la variable nobs alors la condition If sera vraie et la boucle se terminera pour le casser déclaration.

$ echo | awk 'begin num = 7; End for (i = 3; i<=20; i++)
if (i == num) casser;
autre
imprimer "valeur actuelle de i =", i, "\ n"; '

Sortir:

Ici, si la condition est fausse pour quatre itérations lorsque la valeur de je est 3,4,5 et 6. Ainsi, la sortie suivante est imprimée pour les quatre itérations.

Exemple-5: Utilisation de la boucle avec une instruction continue

Continuer la déclaration est utilisée dans n'importe quelle boucle pour omettre toute déclaration en fonction de toute condition particulière. Un tableau nommé produit est déclaré dans le script suivant. en avant La boucle est utilisée pour itérer le tableau et vérifier chaque valeur avec «Logiciel de bureau". Si la valeur correspond, un message indisponible imprimera en omettant un message disponible pour l'instruction Continuer, sinon un message indisponible imprimera. Exécutez le script à partir du terminal.

$ echo | awk 'begin Product ["1001"] = "antivirus";
produit ["1002"] = "Software Office";
produit ["1003"] = "Dessin Software";
Produit ["1004"] = "HDD";
produit ["1005"] = "dvd"; end for (i in Product)
if (Product [i] == "Office Software")
imprimer le produit [i], "n'est pas disponible \ n";
continuer;

imprimer le produit [i], "est disponible", "\ n"; '

Sortir:

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

Exemple-6: Utilisation pour la boucle dans le fichier awk

Créer un fichier texte nommé ventes.SMS et ajouter le contenu suivant pour pratiquer cet exemple.

ventes.SMS

2015 70000
2016 80000
2017 83000
2018 86000
2019 90000

Créer un fichier awk nommé cal_sal.awk avec le script suivant pour calculer le montant total des ventes du fichier ventes.SMS. Le deuxième champ contient le montant des ventes annuel dans le fichier ventes.SMS. Dans le script, les ventes le tableau stockera toutes les valeurs du deuxième champ et somme la variable est initialisée avec 0 pour ajouter toutes les valeurs de ventes déployer. Suivant, en avant la boucle est utilisée pour itérer chaque élément de les ventes tableau et ajouter la valeur avec le somme variable. Enfin, la déclaration d'impression est utilisée pour imprimer la valeur de somme variable pour afficher le montant total des ventes.

cal_sal.awk


ventes [i ++] = 2 $;
sum = 0;

FINIR
pour (I en vente)

sum = sum + ventes [i];

Imprimer "Total Sales Montant =" Sum;

Exécutez la commande suivante pour exécuter le script de cal_sal.fichier awk.

$ awk -f cal_sal.Ventes awk.SMS

Sortir:

Il y a 5 enregistrements dans le ventes.SMS le fichier et la somme du montant des ventes sont 409000 qui sont imprimés après avoir exécuté le script.

Conclusion:

Différentes utilisations de la boucle pour la commande awk sont essayées d'expliquer dans ce tutoriel. Hope, le lecteur aura une idée claire d'utiliser pour Loop dans Awk Script et peut utiliser pour Loop correctement dans la programmation awk.