Shell

如何將帶重音的小寫字母變為大寫?- 使用“tr”命令

  • March 11, 2018

我嘗試過:

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

但是“ê”字元並沒有改變,顯然是因為它被強調了。然後我嘗試使用 POSIX 類:

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

但是“ê”繼續小寫。

有人可以幫助我嗎?

你可以用 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

引用自:https://unix.stackexchange.com/questions/319665