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 variablesum
.END { print « Total Sum : », sum }
: Après avoir traité toutes les lignes, lasomme
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 pari
à 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
!