Xavier Nayrac

Rubyiste accro au TDD, serial blogger, apprenti data scientist, heureux utilisateur de Vim, accordéoniste.
Si vous vous sentez particulièrement généreux, suivez moi sur Twitter.

Remplacer Sed et Awk par Ruby 8: Script sur la ligne de commande

| Comments

Niveau : facile

Il est temps de se passer d’un fichier pour notre script… Lorsque celui-ci est suffisament court, on peut l’écrire directement sur la ligne de commande.

Si on reprend l’exemple tout simple du dernier article, nous avions le fichier de données suivant à transformer en place en majuscule:

data.txt
1
2
alice
bob

Ce qu’on a fait à l’aide du script suivant:

test.rb
1
$_.upcase!

Autrement une seule ligne ! Est-ce que ça vaut vraiment la peine d’écrire un fichier pour ça ? Bien sûr que non. On va donc se passer du fichier script en donnant le code sur la ligne de commande grâce à l’option -e:

1
ruby -p -i.2 -e '$_.upcase!' data.txt

Et voilà, vous êtes maintenant prêts à écrire des one liners. Notez quand même qu’il vaut mieux utiliser les guillemets simples (') autour du code plutôt que les doubles ("), pour empêcher Bash d’interpréter certains caractères (comme ici le !).

À demain.

Articles connexes

Commentaires