[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Linux-31] Remplacer des lettres par des nombres avec tr



Bonjour

Le dimanche 08 mars 2020 à 13:50 +0100, jpcas a écrit :
> Salut,
> 
> > Par contre, j'ai pas réussi à comprendre ça fonctionne dans le
> > détail... (% n'a rien à voir avec modulo je suppose)
> > 
> 
> Voir la man bash au paragraphe "Remplacement des paramètre"
> 
> Cette commande devrait t'y amener directement :
> 
> man -P "less -p \"^ +Remplacement des paramètres\"" bash
> 
> Retrait  du motif correspondant au préfixe (# et ##)
> Retrait  du motif correspondant au suffixe (% et %%)
OK, c'est clair maintenant.


> > 
> > > 	R="${#L}"
> > 
> > Ici, j'imagine qu'on compte le nombre de caractères. Mais
> > comment?...
> > 
> 
> Toujours dans le man bash au paragraphe "Remplacement des paramètre"
> Voir "Longueur du paramètre"
> Ça compte tout simplement la longueur de la chaîne contenue dans la
> variable.
OK aussi.


> Par contre la seconde solution avec un tableau est beaucoup plus
> simple
Plus simple, plus simple... pas pour écrire:
[a]=1 [b]=2 [c]=3 [d]=4 [e]=5 [f]=6 [g]=7 [h]=8 [i]=9
[j]=10 [k]=11 [l]=12 [m]=13 [n]=14 [o]=15 [p]=16 [q]=17 [r]=18 [s]=19
[t]=20 [u]=21 [v]=22 [w]=23 [x]=24 [y]=25 [z]=26)

au lieu de 
abcdefghijklmnopqrstuvwxyz


> et peut même prendre en compte la différence de casse.
> Il suffit de changer la ligne :
> 
> printf "${array[${i}]} "
> 
> par :
> 
> printf "${array[${i,}]} "
> 
> La différence est subtile, la virgule après le "i" qui convertit
> automatiquement une lettre majuscule en minuscule :
Bon à savoir.
> 
> $ ./array.sh a Z z A M e E m
> 1 26 26 1 13 5 5 13
> 
> Bon dimanche.
> @
> JP
Bon dimanche à toi aussi et encore merci.
Claude