localidade e tr problema.
Atualmente, o GNU tr suporta totalmente somente caracteres de byte único. Então em locales usando codificações multibyte, a saída pode ser estranha:
$ </dev/urandom LC_ALL=vi_VN.tcvn tr -dc '[:print:]' | head -c 64
'�pv���Z����c�ox"�O���%�YR��F�>��췔��ovȪ������^,<H ���>
O shell irá imprimir caracteres multi-byte corretamente, mas o GNU tr
removerá os bytes que ele considera imprimíveis.
Se você quer que ele seja estável, você deve definir a localidade:
$ </dev/urandom LC_ALL=C tr -dc '[:print:]' | head -c 64
RSmuiFH+537z+iY4ySz'{Pv6mJg::RB;/-2^{QnKkImpGuMSq92D(6N8QF?Y9Co@