[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Linux-31] Remplacer des lettres par des nombres avec tr
Salut,
Un truc comme ça ?
$ cat foo.sh
#! /bin/bash
#set -xv
tab='abcdefghijklmnopqrstuvwxyz'
for i in ${@}
do
L="${tab%${i}*}"
R="${#L}"
((R++))
printf "${R} "
done
Ce qui donne :
$ ./foo.sh a n d z t
1 14 4 26 20
On doit pouvoir faire encore plus simple avec un tableau, mais c'est pas
mon truc ;-)
@+
JP
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
>