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

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

我尝试过:

$ 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

相关内容