Accéder au contenu.
Menu Sympa

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

Objet : Discussions sur le logiciel libre

Archives de la liste

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


Chronologique Discussions 
  • From: manu chez Z <emmanuel.courcelle AT zaclys.net>
  • To: linux-31 AT culte.org
  • Subject: Re: [Linux-31] Remplacer des lettres par des nombres avec tr
  • Date: Thu, 5 Mar 2020 22:16:04 +0100
  • Authentication-results: pic2s.le-pic.org; dkim=pass (1024-bit key; secure) header.d=zaclys.net header.i= AT zaclys.net header.b="asBHxIl6"; dkim-atps=neutral
  • Authentication-results: mail.zaclys.net; dmarc=fail (p=reject dis=none) header.from=zaclys.net
  • Authentication-results: mail.zaclys.net; spf=fail smtp.mailfrom=emmanuel.courcelle AT zaclys.net
  • Dmarc-filter: OpenDMARC Filter v1.3.2 mail.zaclys.net 025LG4xv022593

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

Bonsoir

tr remplace caractère par caractère, et il n'est donc pas capable de remplacer un caractère par un nombre à deux chiffres. Et lorsque tu écris 0-26 il comprend "0 à 2 et 6", soit 4 caractères. De plus les [] sont comptés comme des caractères comme les autres. Dans ton exemple il fait les remplacements suivants:

[ -> [
a -> 0
b -> 1
c -> 2
d -> 6
e -> ]
f -> ]
...
z -> ]

Les autres caractères ne seront pas remplacés. L'exemple suivant montre bien comment ça fonctionne:

echo "a b c d e f g h i j k l" |  tr "a-f" "0-26"
0 1 2 6 6 6 g h i j k l

Amicalement,

Emmanuel





Archives gérées par MHonArc 2.6.19+.

Haut de le page