我正在编写一个shell脚本,并有一个像这样的变量:something-that-is-hyphenated
。
我需要在脚本的各个方面使用它:something-that-is-hyphenated
,somethingthatishyphenated
,SomethingThatIsHyphenated
我已经设法通过使用somethingthatishyphenated
剥离了-
,将其更改为sed "s/-//g"
。
我敢肯定有一种更简单的方法,并且还需要知道如何获得 Camel 式的版本。
编辑:从@Michał的答案派生的工作功能
function hyphenToCamel {
tr '-' '\n' | awk '{printf "%s%s", toupper(substr($0,1,1)), substr($0,2)}'
}
CAMEL=$(echo something-that-is-hyphenated | hyphenToCamel)
echo $CAMEL
编辑:最后,感谢@glenn,一个sed类轮
echo a-hyphenated-string | sed -E "s/(^|-)([a-z])/\u\2/g"
最佳答案
GNU sed单线
echo something-that-is-hyphenated |
sed -e 's/-\([a-z]\)/\u\1/g' -e 's/^[a-z]/\u&/'
替换字符串中的
\u
在the sed manual中记录。