Awk

Comment utiliser la boucle for dans la commande awk

Comment utiliser la boucle for dans la commande awk
La boucle est utilisée pour exécuter certaines instructions plusieurs fois. L'itération de la boucle en fonction de la condition de terminaison ou du nombre d'éléments du tableau. Trois types de boucles sont pris en charge par n'importe quel langage de programmation. La boucle For est l'une d'entre elles. La boucle for peut être déclarée de deux manières. La boucle for simple contient trois parties.  Et une autre boucle for est la boucle for-in qui est utilisée pour itérer n'importe quelle 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. déclaration de boucle for :
for (initialisation ; condition de fin ; incrément/décrément)
déclarations

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 continuera jusqu'à ce que la condition soit vraie. La dernière partie incrémentera ou décrémentera la variable d'initialisation en fonction de la première partie.

  1. déclaration for-in
pour (variable dans tableau/liste)
déclarations

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

Exemple-1 : Utilisation de la boucle for simple

Une boucle for simple est utilisée dans le script suivant. Ici, compteur variable est initialisée par 10 et la boucle se terminera lorsque la valeur de compteur est inférieur à 5. Le script imprimera le compteur valeurs de 10 à 5. Exécutez la commande depuis le terminal.

$ echo | awk ' pour (compteur = 10; compteur >= 5; compteur--)
print "Course pour ", compteur, " fois.","\n"; '

Production:

La sortie suivante apparaîtra après l'exécution de la commande.

Exemple-2 : Utilisation de la boucle for-in pour lire un tableau

Un tableau nommé Customer 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 comme valeur de tableau. pour-in la boucle est utilisée ici pour itérer chaque index du tableau et imprimer le nom du client. Exécutez le script depuis le terminal.

$ echo | awk 'BEGIN Client["4587"] = "Neil Johnson";
Client["8953"] = "Ella binte Nazir";
Client["3455"] = "Bruce Hyslop";
Client["6335"] = "Isabelle";
 
END pour (i dans Client)
print  "Le nom de ", i, " est " ,Client[i]
'

Production:

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

Exemple-3 : Utilisation de la boucle for imbriquée

Lorsqu'une boucle for est déclarée sous une autre boucle for, elle est appelée boucle for imbriquée. La boucle externe utilisée dans ce script sera itérée 2 fois et la boucle interne itérera 3 fois. Ainsi, l'instruction print s'exécutera pour, (2X3=6) 6 fois. Exécutez le script depuis le terminal.

$ echo | awk 'END pour (i=1; je<=2; i++)
pour (j=1; j<=3; j++)
print  "Itération de la ligne ", i" et de la colonne ", j,"\n" ;'

Production:

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

Exemple-4 : Utilisation de la boucle for avec l'instruction break

Pause L'instruction est utilisée dans n'importe quelle boucle pour terminer la boucle avant d'atteindre la condition de terminaison basée sur la condition particulière. Dans le script suivant, la boucle for commencera à partir de 3 et se terminera lorsque la valeur de je est supérieur à 20. Mais lorsque la valeur de je sera égal à la variable nombre alors la condition if sera vraie et la boucle se terminera pour le Pause déclaration.

$ echo | awk 'BEGIN num=7; FIN pour (i=3; je<=20; i++)
if( i == num) pause ;
autre
print  " Valeur actuelle de i =",i ,"\n";'

Production:

Ici, si la condition est fausse pendant 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 for avec l'instruction continue

L'instruction Continue est utilisée dans n'importe quelle boucle pour omettre toute instruction basée sur une condition particulière. Un tableau nommé produit est déclaré dans le script suivant. pour-in 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 s'imprimera en omettant le message disponible pour l'instruction continue, sinon le message indisponible s'imprimera. Exécutez le script depuis le terminal.

$ echo | awk 'BEGINproduct["1001"]="Antivirus" ;
produit["1002"]="Logiciel de bureau" ;
produit["1003"]="Logiciel de dessin" ;
produit["1004"]="Disque dur" ;
produit["1005"]="DVD"; END pour (i dans le produit)
if(produit[i] == "Logiciel Office")
print product[i]," n'est pas disponible\n" ;
Continuez;

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

Production:

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

Exemple 6 : Utilisation de la boucle for dans le fichier awk

Créer un fichier texte nommé Ventes.SMS et ajoutez le contenu suivant pour mettre en pratique cet exemple.

Ventes.SMS

2015 70000
2016 80000
2017 83000
2018 86000
2019 90000

Créer un fichier awk nommé cal_sal.ok avec le script suivant pour calculer le montant total des ventes du fichier Ventes.SMS. Le deuxième champ contient le montant des ventes annuelles dans le fichier Ventes.SMS. Dans le scénario, les ventes array stockera toutes les valeurs du deuxième champ et somme variable est initialisée avec 0 pour ajouter toutes les valeurs de Ventes déployer. Suivant, pour-in boucle est utilisée pour itérer chaque élément de les ventes tableau et ajoutez la valeur avec le somme variable. Enfin, l'instruction print est utilisée pour imprimer la valeur de somme variable pour afficher le montant total des ventes.

cal_sal.ok


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

FINIR
pour (i dans les ventes)

somme=somme+ventes[i] ;

print "Montant total des ventes=" somme;

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

$ awk -f cal_sal.vente maladroite.SMS

Production:

Il y a 5 enregistrements dans le Ventes.SMS fichier et la somme du montant des ventes est de 409000 qui est imprimée après l'exécution du script.

Conclusion:

Différentes utilisations de la boucle for dans la commande awk sont expliquées dans ce tutoriel. J'espère que le lecteur aura une idée claire de l'utilisation de la boucle for dans le script awk et sera capable d'utiliser correctement la boucle for dans la programmation awk.

Émulez les clics de souris en survolant à l'aide de la souris sans clic dans Windows 10
L'utilisation d'une souris ou d'un clavier dans la mauvaise posture d'une utilisation excessive peut entraîner de nombreux problèmes de santé, notamme...
Ajoutez des gestes de souris à Windows 10 à l'aide de ces outils gratuits
Ces dernières années, les ordinateurs et les systèmes d'exploitation ont considérablement évolué. Il fut un temps où les utilisateurs devaient utilise...
Contrôlez et gérez le mouvement de la souris entre plusieurs moniteurs dans Windows 10
Gestionnaire de souris à double affichage vous permet de contrôler et de configurer le mouvement de la souris entre plusieurs moniteurs, en ralentissa...