
"123456"과 같은 문자열을 변환하려고 합니다.ㅏ”에서 “123456ㅏ" 또는"티동쪽으로"시간est"이지만 기존 대문자는 변경하지 않고 그대로 둡니다(예: testHW
be TestHW
.
나는 많은 것을 시도했습니다:
sed 's/[[:alpha:]]./\u\1/'
운이 없군요. 어떤 아이디어가 있나요?
답변1
\1
\n
또는 숫자 인 일반 형식은 n
해당 역참조 표현식과 일치하는 텍스트로 대체되어야 하며, 이는 \(...\)
BRE 또는 ERE (...)
간에 텍스트를 그룹화하여 정의 할 수 있습니다.
GNU sed 사용:
$ echo 123456a | sed 's/\([[:alpha:]]\)/\u\1/'
123456A
또는:
$ echo 123456a | sed -E 's/([[:alpha:]])/\u\1/'
123456A
&
역참조 대신 인용된 일치 텍스트를 사용할 수도 있습니다 .
$ echo 123456a | sed 's/[[:alpha:]]/\u&/'
123456A
[:alpha:]
소문자와 대문자가 모두 일치하므로 비슷한 내용은 그대로 123456Aa
유지됩니다.
첫 번째 소문자를 해당 대문자로 바꾸려면 다음을 사용해야 합니다 [:lower:]
.
$ echo 123456Aa | sed 's/[[:lower:]]/\u&/'
123456AA