Я пробовал с:
$ echo 'Ciência' | tr 'a-z' 'A-Z'
CIêNCIA
Но символ 'ê' не меняется, очевидно, потому что он акцентирован. Затем я попробовал с классами POSIX:
echo "Ciência" | tr '[:lower:]' '[:upper:]'
CIêNCIA
Но буква «ê» по-прежнему пишется строчной буквой.
Может ли кто-нибудь мне помочь?
решение1
Это можно сделать с помощью gawk:
echo "Ciência" | gawk '{print toupper($0);}'
(тоже perl, кто-нибудь обязательно укажет). В примере используется UTF-8, который явно не является частьюPOSIX-awk. Документация gawk упоминает эти проблемы. Например, mawk и bwk (one-true-awk) дают разные результаты:
+ 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