Recherche de site Web

Comment utiliser awk pour l’arithmétique dans les boucles sous Linux


La commande awk est un outil puissant sous Linux pour le traitement et l’analyse des fichiers texte, ce qui est particulièrement utile lorsque vous devez effectuer des opérations arithmétiques dans des boucles.

Cet article vous guidera dans l’utilisation de awk pour les opérations arithmétiques en boucles, en utilisant des exemples simples pour clarifier les concepts.

Qu’est-ce que awk ?

awk est un langage de script conçu pour le traitement de texte et l’extraction de données, qui lit les entrées ligne par ligne, divise chaque ligne en champs et vous permet d’effectuer des opérations sur ces champs. Il est couramment utilisé pour des tâches telles que la correspondance de motifs, les calculs arithmétiques et la génération de rapports formatés.

La syntaxe de base d’awk est la suivante :

awk 'BEGIN { initialization } { actions } END { finalization }' file
  • BEGIN : Bloc de code exécuté avant le traitement de l’entrée.
  • actions : bloc de code exécuté pour chaque ligne de l’entrée.
  • END : bloc de code exécuté après le traitement de toutes les lignes.

Exécution d’opérations arithmétiques dans des boucles

Voyons comment utiliser awk pour effectuer des opérations arithmétiques dans des boucles avec les exemples utiles suivants pour illustrer les concepts clés.

Exemple 1 : Calculer la somme des nombres

Supposons que vous ayez un fichier nommé numbers.txt contenant les numéros suivants :

5
10
15
20

Vous pouvez calculer la somme de ces nombres à l’aide de awk :

awk '{ sum += $1 } END { print "Total Sum:", sum }' numbers.txt

Explication :

  • { sum += $1 } : Pour chaque ligne, la valeur du premier champ $1 est ajoutée à la variable sum.
  • END { print « Total Sum : », sum } : Après avoir traité toutes les lignes, la somme totale est imprimée.

Exemple 2 : Calculer la moyenne

Pour calculer la moyenne des nombres :

awk '{ sum += $1; count++ } END { print "Average:", sum / count }' numbers.txt

Explication :

  • count++ : incrémente le compteur pour chaque ligne.
  • sum/count : divise la somme totale par le compte pour calculer la moyenne.

Exemple 3 : Table de multiplication

Vous pouvez utiliser awk pour générer une table de multiplication pour un nombre donné. Par exemple, pour générer une table pour 5 :

awk 'BEGIN { for (i = 1; i <= 10; i++) print "5 x", i, "=", 5 * i }'

Explication :

  • for (i=1 ; i <= 10 ; i++) : Une boucle qui s’étend de 1 à 10.
  • print « 5 x », i, « = », 5 * i : Imprime la table de multiplication.

Exemple 4 : Calcul factoriel

Pour calculer la factorielle d’un nombre (par exemple, 5) :

awk 'BEGIN { n = 5; factorial = 1; for (i = 1; i <= n; i++) factorial *= i; print "Factorial of", n, "is", factorial }'

Explication :

  • n=5 : nombre pour lequel la factorielle est calculée.
  • factoriel *= i : multiplie la valeur actuelle de factorielle par i à chaque itération.

Exemple 5 : Additionner des nombres pairs

Pour additionner uniquement les nombres pairs d’un fichier :

awk '{ if ($1 % 2 == 0) sum += $1 } END { print "Sum of Even Numbers:", sum }' numbers.txt

Explication :

  • if ($1 % 2 == 0) : Vérifie si le nombre est pair.
  • sum += $1 : Ajoute le nombre pair à la somme.

Conclusion

La commande awk est un outil polyvalent permettant d’effectuer des opérations arithmétiques en boucles. En combinant des boucles, des conditions et des opérateurs arithmétiques, vous pouvez gérer efficacement un large éventail de tâches.

Pratiquez ces exemples et expérimentez avec vos propres scripts pour libérer tout le potentiel d’awk !