¿Cómo cambio las letras minúsculas acentuadas a mayúsculas? - Usando el comando 'tr'

¿Cómo cambio las letras minúsculas acentuadas a mayúsculas? - Usando el comando 'tr'

Lo intenté con:

$ echo 'Ciência' | tr 'a-z' 'A-Z'
CIêNCIA

Pero el carácter 'ê' no cambia, obviamente porque se acentúa. Luego probé con clases POSIX:

echo "Ciência" | tr '[:lower:]' '[:upper:]'
CIêNCIA

Pero la 'ê' continúa en minúscula.

¿Alguien podría ayudarme?

Respuesta1

Puedes hacer esto con gawk:

echo "Ciência" | gawk '{print toupper($0);}'

(también Perl, alguien seguramente lo señalará). El ejemplo utiliza UTF-8, que no forma parte explícitamente dePOSIX awk. La documentación de gawk menciona estos problemas. Por ejemplo, tanto mawk como bwk (one-true-awk) dan resultados diferentes:

+ echo Ciência
+ gawk {print toupper($0);}
CIÊNCIA
+ echo Ciência
+ mawk {print toupper($0);}
CIêNCIA
+ echo Ciência
+ one-true-awk {print toupper($0);}
CIêNCIA

información relacionada