下划线转驼峰式命名法

下划线转驼峰式命名法

如何将下划线分隔的单词转换为“camelCase”?这是我正在尝试的:

echo "remote_available_packages" | sed -r 's/([a-z]+)_([a-z])([a-z]+)/\1\U\2\L\3/'

但它返回remoteAvailable_packages时没有更改pin packages

答案1

这是这样做的(在 GNU sed 中):

echo "remote_available_packages" | sed -E 's/_(.)/\U\1/g'

答案2

在 awk 中

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

在 Perl 中:

echo "remote_available_packages" | perl -pe 's/(^|_)([a-z])/uc($2)/ge'  

或者:

echo "remote_available_packages" | perl -pe 's/_([a-z])/uc($1)/ge'

如果第一个字母不应大写。

相关内容