如何將重音的小寫字母轉換為大寫字母? - 使用「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

相關內容