如何将带重音的小写字母变成大写?- 使用“tr”命令

Pat*_*son 6 shell posix regular-expression tr

我尝试过:

$ echo 'Ciência' | tr 'a-z' 'A-Z'
CIêNCIA
Run Code Online (Sandbox Code Playgroud)

但是“ê”字符没有改变,显然是因为它被强调了。然后我尝试使用 POSIX 类:

echo "Ciência" | tr '[:lower:]' '[:upper:]'
CIêNCIA
Run Code Online (Sandbox Code Playgroud)

但是'ê' 继续小写。

有人可以帮助我吗?

Tho*_*key 6

你可以用 gawk 做到这一点:

echo "Ciência" | gawk '{print toupper($0);}'
Run Code Online (Sandbox Code Playgroud)

(也是 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
Run Code Online (Sandbox Code Playgroud)