2014-06-22 2 views
-1

안녕하세요 Solaris OS에서 변수를 대문자로 변환하려고합니다.Solaris 쉘에서 대문자 사용

은 Oracle Solaris 10 8/11 s10s_u10wos_17b SPARC 저작권 (C) 1983, 2011, 오라클 :

그래서 hello_world에서 또한

또는되면 Hellow_World

는 HELLO 안녕하세요

도와주세요에, 이것은 솔라리스 OS입니다 및/또는 그 계열사. 판권 소유. 2011년 8월 23일을 조립

답변

1

펄이있는 경우 :

% echo HELLO_WORLD FOO bar | perl -pe '($_ = lc $_) =~ s/(\b|_)./\U$&/g' 
Hello_World Foo Bar 

perl -pe 표준 입력, 인수로 주어진 펄 코드를 적용한 후 인쇄 각 행을 읽습니다. $_이 현재 행입니다. lc 함수는 문자열을 소문자로 변환합니다. 정규 표현식은 단어 경계 또는 밑줄 문자와 일치합니다. s/// 명령은 일치하는 모든 부속 문자열을 해당 대문자로 바꿉니다. 후행 g은 각 행에서 가능한 한 많은 횟수로 대체를 수행합니다 (기본적으로 한 번 완료됩니다). 당신이 (내가 솔라리스는 기본적으로 포함되어 있는지 모르는) 펄이없는 경우

,이 시도 :

% echo HELLO_WORLD FOO bar | tr A-Z a-z | sed 's/\(_\|\<\)./\U&/g' 
Hello_World Foo Bar 

당신은 sed 명령에 상단에-소문자 매핑을 통합 할 수 y///을 사용하지만 tr과 달리 범위를 허용하지 않는 것으로 나타납니다.

% echo HELLO_WORLD FOO bar | tr A-Z a-z | sed 'y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/;s/\(_\|\<\)./\U&/g' 
Hello_World Foo Bar