|
From: | Bruno Haible |
Subject: | bug#20114: tr does not support multibyte characters in the first argument |
Date: | Mon, 16 Mar 2015 03:30:25 +0100 |
User-agent: | KMail/4.8.5 (Linux/3.2.0-64-generic; KDE/4.8.5; x86_64; ; ) |
POSIX [1] specifies that the recognition of characters in 'tr' depends on the environment variables LANG, etc. But trying to replace a multibyte character by another character does not work: $ echo $LANG de_DE.UTF-8 $ enspace=`printf '\u2002'` $ echo -n "X${enspace}Y" | tr "${enspace}" ' ' | od -t x1 0000000 58 20 20 20 59 0000005 Expected output would be: $ echo -n "X${enspace}Y" | tr "${enspace}" ' ' | od -t x1 0000000 58 20 59 0000003 With 'sed' it works: $ echo -n "X${enspace}Y" | sed -e "s/${enspace}/ /g" | od -t x1 0000000 58 20 59 0000003 Bruno [1] http://pubs.opengroup.org/onlinepubs/9699919799/utilities/tr.html
[Prev in Thread] | Current Thread | [Next in Thread] |