[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
>