[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Linux-31] Remplacer des lettres par des nombres avec tr
Le vendredi 06 mars 2020 à 01:20 +0100, Pierre ESTREM a écrit :
> Bonsoir,
>
> Amusant, mais casse-tête !
>
> Je suggère que tu partes sur la base du code décimal des caractères
> ('a'
> -> 97 etc 'A' -> 65 etc) et soustraire selon, 64 ou 96...
>
> J'étudierais les commandes :
> * hexdump
> * bc (calcul)
> * $[...] (calcul)
Trop dur pour moi.
> * sed ?
J'ai fait avec sed
while read l n
do sed -i "s/$l/$n/g" fichier_a_chiffrer.txt
done < lettres_nombres.txt
lettres_nombres.txt est un fichier contenant les correspondances
lettre/nombre
a 1
b 2
c 3
d 4
etc etc
Merci et bonne soirée.
Claude MICOUIN
>
> Mine de rien c'est du boulot.
>
> Bonne chasse ;)
>
> pierre estrem
>
>
>
> Le 04/03/2020 à 23:35, Claude MICOUIN (via linux-31 Mailing List) a
> écrit :
> > Bonsoir la liste,
> > Je cherche à remplacer chaque lettre d'un fichier par leur numéro
> > d'ordre dans l'alphabet:
> > a -> 1
> > b -> 2
> > etc.
> >
> > Ça marche très bien jusqu'à 9 avec la commande tr
> > $ echo 'b f a i c h' |tr "[a-k]" "[0-9]"
> > 1 5 0 8 2 7
> >
> > Mais ça se gâte dès qu'on arrive à un nombre à deux chiffres:
> > $ echo 'b f a i c h' |tr "[a-z]" "[0-26]"
> > 1 ] 0 ] 2 ]
> >
> > J'ai essayé de changer les " pour des ' dans tous les sens, aucun
> > résultat.
> > Quelqu'un saurait où ça foire ?
> > Merci.
> > Bonne soirée.
> > Claude MICOUIN
> >