악센트가 있는 소문자를 대문자로 어떻게 바꾸나요? - '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

관련 정보