![](https://secure.gravatar.com/avatar/b52a9442798d416766ff3130c1a3eeda.jpg?s=120&d=mm&r=g)
Bonjour, J'ai un petit souci que j'attribue à l'utf8 : $ echo cÔtön|tr 'áàâäçéèêëíìîïñóòôöúùûü ÁÀÂÄÇÉÈÊËÍÌÎÏÑÓÒÔÖÚÙÛÜ' 'aaaaceeeeiiiinoooouuuu_aaaaceeeeiiiinoooouuuu' cuutuin le Ô est "vu" par tr comme 2 caractères, tout comme le ö. Je m'en sort avec un $ echo cÔtön|sed 'y/áàâäçéèêëíìîïñóòôöúùûü ÁÀÂÄÇÉÈÊËÍÌÎÏÑÓÒÔÖÚÙÛÜ/aaaaceeeeiiiinoooouuuu_aaaaceeeeiiiinoooouuuu/' coton c'est curieux non ? Sinon, questions perfs, il y a une grosse différence entre tr et sed ? En entre "tr expr1|tr expr2|tr expr3" et "sed -e 'exprA; exprB; exprC" ? Je suppose qu'à partir d'un certains nombre de pipes, sed devient plus performant, mais c'est assez pifométrique comme mesure. -- Daniel
![](https://secure.gravatar.com/avatar/fca2f239cfe12f2c239e3e3d91ab8a7d.jpg?s=120&d=mm&r=g)
On 2007-02-21 13:41:01 +0100, Daniel Caillibaud wrote:
J'ai un petit souci que j'attribue à l'utf8 :
$ echo cÔtön|tr 'áàâäçéèêëíìîïñóòôöúùûü ÁÀÂÄÇÉÈÊËÍÌÎÏÑÓÒÔÖÚÙÛÜ' 'aaaaceeeeiiiinoooouuuu_aaaaceeeeiiiinoooouuuu' cuutuin
le Ô est "vu" par tr comme 2 caractères, tout comme le ö.
Je m'en sort avec un $ echo cÔtön|sed 'y/áàâäçéèêëíìîïñóòôöúùûü ÁÀÂÄÇÉÈÊËÍÌÎÏÑÓÒÔÖÚÙÛÜ/aaaaceeeeiiiinoooouuuu_aaaaceeeeiiiinoooouuuu/' coton
c'est curieux non ?
C'est un bug de tr. Il devrait prendre en compte les locales:
http://www.opengroup.org/onlinepubs/009695399/utilities/tr.html
Il se produit au moins avec les versions suivantes:
tr (GNU coreutils) 5.97 (sous Debian)
tr (GNU coreutils) 6.7 (sous Mac OS X)
Je ne pense pas qu'il y ait besoin de faire un rapport de bug, car
c'est dans le TODO:
Adapt tools like wc, tr, fmt, etc. (most of the textutils) to be
multibyte aware. The problem is that I want to avoid duplicating
significant blocks of logic, yet I also want to incur only minimal
(preferably `no') cost when operating in single-byte mode.
(copié de /usr/share/doc/coreutils/TODO.gz sous Debian).
En revanche, si quelqu'un a un patch acceptable, je suppose qu'il
est le bienvenu...
--
Vincent Lefèvre
participants (2)
-
Daniel Caillibaud
-
Vincent Lefevre