Todo:
tr '[:lower:]' '[:upper:]'
(no se olvide de las comillas, de otro modo que no va a funcionar si hay un archivo llamado :
, l
... o r
en el directorio actual) o:
awk '{print toupper($0)}'
o:
dd conv=ucase
están destinados a convertir caracteres a mayúsculas de acuerdo con las reglas definidas en la configuración regional actual. Sin embargo, incluso cuando las configuraciones regionales usan UTF-8 como el conjunto de caracteres y definen claramente la conversión de minúsculas a mayúsculas, al menos GNU dd
, GNU tr
y mawk
(el valor predeterminado awk
en Ubuntu, por ejemplo) no las siguen. Además, no hay una forma estándar de especificar configuraciones regionales que no sean C
o POSIX
, por lo que si desea convertir los archivos UTF-8 a mayúsculas de manera portátil, independientemente de la configuración regional actual, no tiene suerte con el cofre de herramientas estándar.
Como a menudo, para la portabilidad, su mejor apuesta puede ser perl:
$ echo lľsšcčtťzž | PERLIO=:utf8 perl -pe '$_=uc'
LĽSŠCČTŤZŽ
Ahora, debes tener en cuenta que no todos están de acuerdo sobre cuál es la versión en mayúsculas de un personaje específico.
Por ejemplo, en locales turcos, las mayúsculas i
no son I
, sino İ
( <U0130>
). Aquí con la herramienta tr
de comprobación de herencia en lugar 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:]'
İÍ
En mi sistema, la perl
conversión a superior se define en /usr/share/perl/5.14/unicore/To/Upper.pl
, y encuentro que se comporta de manera diferente en algunos caracteres de la libc de GNU toupper()
en la C.UTF8
configuración regional, por ejemplo, perl
siendo más precisa. Por ejemplo perl
, convierte correctamente ɀ a Ɀ , la libc de GNU (2.17) no.