악센트가 있는 소문자를 대문자로 변환하는 방법은 무엇입니까? - "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

관련 정보