我尝试过:
$ 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