In my opinion, this is not a bug (and probably not a feature either) but the expected behavior.
bash's printf is a slightly modified version of the underlying printf() function provided by the C standard library. The printf(3) manual explicitly states that the precision is a number of _bytes_, not a number of characters. So this is the expected result with multibyte characters like 'á'. You might want to switch to a ISO-8859 character set if you want your 'á' character to only take one byte of memory. -- You received this bug notification because you are a member of Ubuntu Touch seeded packages, which is subscribed to bash in Ubuntu. https://bugs.launchpad.net/bugs/1654688 Title: Printf does not properly justify non-ASCII characters Status in bash package in Ubuntu: New Bug description: I have a script that outputs arbitrary Unicode characters in neat columns, but for anything outside the Basic Latin range (i.e. codepoints > 127), the justification is off. For example, both below commands should output a leading space: $ printf "%2s\n" 'a' a $ printf "%2s\n" 'á' á The spacing problem starts between U+7F and U+80. If you try to print two leading spaces, the same problem occurs between U+7FF and U+800. This affects the binary /usr/bin/printf as well, but I'm not sure where to report a bug for that. Ubuntu version: 14.04.5 Bash version: 4.3-7ubuntu1.5 (latest) To manage notifications about this bug go to: https://bugs.launchpad.net/ubuntu/+source/bash/+bug/1654688/+subscriptions -- Mailing list: https://launchpad.net/~touch-packages Post to : [email protected] Unsubscribe : https://launchpad.net/~touch-packages More help : https://help.launchpad.net/ListHelp

