밑줄로 구분된 단어를 "camelCase"로 변환하는 방법은 무엇입니까? 이것이 내가 시도하는 것입니다:
echo "remote_available_packages" | sed -r 's/([a-z]+)_([a-z])([a-z]+)/\1\U\2\L\3/'
그러나 에서는 remoteAvailable_packages
변경되지 않은 상태 로 반환됩니다 .p
packages
답변1
이것은 (GNU sed에서) 수행됩니다:
echo "remote_available_packages" | sed -E 's/_(.)/\U\1/g'
답변2
갑자기
echo 'remote_available_packages' | awk -F _ '{printf "%s", $1; for(i=2; i<=NF; i++) printf "%s", toupper(substr($i,1,1)) substr($i,2); print"";}'
답변3
펄에서는:
echo "remote_available_packages" | perl -pe 's/(^|_)([a-z])/uc($2)/ge'
또는:
echo "remote_available_packages" | perl -pe 's/_([a-z])/uc($1)/ge'
첫 글자를 대문자로 쓰면 안 되는 경우.