2013-08-07 1 views
1

순수하게 재미를 위해서, awk, sed, tr, 정규식 또는 Python 또는 Perl을 제외한 다른 유닉스 도구를 사용하여 모든 소문자 텍스트를 대문자로 변환하는 방법을 궁금합니다. . 원하는 출력이 HeLlO을해야Unix 명령을 사용하여 cApS를 번갈아 사용

은 지금까지 나는

echo "hello" | sed s/\([a-z]\)/\U\1/g 

시도했습니다. 누구나이 문제를 개선하거나 대안을 제시 할 수 있다면 고맙겠습니다.

답변

1

당신을 위해 awk 방법 :

echo "hello" | awk '{for(i=1;i<=NF;i+=2)$i=toupper($i)}1' FS= OFS= 
HeLlO 
1
$ sed 's/[a-z].\?/\u\0/g' <<< hello 
HeLlO 

(면책 조항 :. 이것이 내가 버전 4.2.1 나오지 GNU에 그것을 실행 비표준 기능에 따라 달라질 수 있습니다.)

1

이 힘 당신을위한 일 (GNU sed) :

sed 's/[[:lower:]][^[:alpha:]]*\([[:alpha:]]\|$\)/\u&/g' file