2026-10-15

La commande du mois : ROT13 en une ligne


Mes plus fidèles lecteurices (*) le savent : j'adore le ROT13.

Pour rappel, le ROT13 est un codage amusant. Il consiste à décaler les lettres de 13 positions dans l'alphabet. Par exemple B devient O, I devient V, T devient G, E devient R. À la fin, ça donne le mot codé "OVGR" qu'on peut décoder par la même transformation. (**)

Eh bien pour la commande du mois, voici la plus courte implémentation du ROT13 que je connaisse :

tr A-Z N-ZA-M


Ici j'utilise la très puissante commande tr dont je vous ai déjà parlé précédemment. Cette commande remplace les caractères d'une première liste par les caractères correspondants d'une seconde liste.

Ici la première liste est A-Z soit la totalité de l'alphabet. La seconde liste est N-ZA-M soit l'alphabet décalé de 13 positions. Pour décoder le mot de l'exemple introductif, on peut faire :

tr A-Z N-ZA-M <<< OVGR

Pour traiter les majuscules et les minuscules, il suffit de concaténer les alphabets : 

tr A-Za-z N-ZA-Mn-za-m


(*) Oui, vous quatre. Cœur avec les doigts. (**) Pour parler pédant, ROT13 est une involution.

Aucun commentaire: