Remplacer Sed et Awk par Ruby 2: Premiers pas
Vous avez décidé de remplacer Sed et Awk par Ruby ? C’est parti. L’objectif de cet article sera de calculer et d’afficher la somme des valeurs contenues dans un fichier.
Prenons le simple fichier de données (data.txt) suivant:
Hello world!
Le premier pas sera d’afficher chaque ligne du fichier de données. Voici le script Ruby qui va faire ça:
La variable $_
est une variable prédéfinie qui contient la ligne en cours
de traitement. Dans l’article précédent, j’évoquai la boucle de traitement
implicite. Pour dire à Ruby d’utiliser cette boucle implicite, on doit
utiliser l’option -n
sur la ligne de commande:
BEGIN et END
Pour calculer la somme des valeurs du fichier, il va falloir initialiser
une variable avant la boucle de traitement et l’afficher après la
boucle de traitement. Pour ça, Ruby reprend ce que fait Awk avec les
blocs BEGIN {}
et END {}
:
Le code placé dans un bloc BEGIN
est executé avant tout autre code du
fichier. Celui placé dans un bloc END
est executé après tout autre code
du fichier. Objectif atteint:
Il faut noter qu’on a réussi notre objectif sans avoir explicitement à ouvrir le fichier et à lire chaque ligne.
À demain.