Tous:
tr '[:lower:]' '[:upper:]'
(ne pas oublier les guillemets, sinon que ne fonctionnera pas s'il y a un fichier appelé :, l... ou rdans le répertoire courant) ou:
awk '{print toupper($0)}'
ou:
dd conv=ucase
sont destinés à convertir les caractères en majuscules selon les règles définies dans les paramètres régionaux actuels. Cependant, même lorsque les paramètres régionaux utilisent UTF-8 comme jeu de caractères et définissent clairement la conversion de minuscules en majuscules, au moins GNU dd, GNU tret mawk(par défaut awksur Ubuntu par exemple) ne les suivent pas. En outre, il n'existe aucun moyen standard de spécifier des paramètres régionaux autres que Cou POSIX, donc si vous souhaitez convertir des fichiers UTF-8 en majuscules de manière portable indépendamment des paramètres régionaux actuels, vous n'avez pas de chance avec le toolchest standard.
Comme souvent, pour la portabilité, votre meilleur pari peut être perl:
$ echo lľsšcčtťzž | PERLIO=:utf8 perl -pe '$_=uc'
LĽSŠCČTŤZŽ
Maintenant, vous devez vous assurer que tout le monde n'est pas d'accord sur la version majuscule d'un caractère spécifique.
Par exemple, dans les locales turques, la majuscule in'est pas I, mais İ( <U0130>). Ici avec l'héritage toolchest trau lieu de GNU tr:
$ echo ií | LC_ALL=C.UTF-8 tr '[:lower:]' '[:upper:]'
IÍ
$ echo ií | LC_ALL=tr_TR.UTF-8 tr '[:lower:]' '[:upper:]'
İÍ
Sur mon système, la perlconversion vers le haut est définie dans /usr/share/perl/5.14/unicore/To/Upper.pl, et je trouve qu'elle se comporte différemment sur quelques caractères de la libc GNU toupper()dans les C.UTF8paramètres régionaux par exemple, perlétant plus précise. Par exemple, perlconvertit correctement ɀ en Ɀ , contrairement à la libc GNU (2.17).