我在centos中尝试过这个正则表达式。
RegEx:echo 'select-value'|sed -r 's/(-)(\w)/\U\2/g'
输出:selectValue
但是在阿尔卑斯山,当我尝试下面的正则表达式时,我得不到输出
RegEx:echo 'select-value'|sed -r 's/(-)(\w)/\%U\2/g'
输出:select%Uvalue
预期输出:selectValue
请推荐正确的正则表达式。
谢谢
发布于 2018-08-23 05:36:55
看起来高山默认使用busybox sed。您必须安装gnu sed (它可能已经安装)。
在一个码头高山3.5容器中,我已经尝试过了,它工作在echo 'select-value'|/bin/sed -r 's/(-)(\w)/\U\2/g'
。注意/bin/sed
部分。Gnu已经安装在docker镜像中。
如果您还不能做到这一点,可以使用awk
:
echo 'select-value-another-value'|awk -F'-' '{ for(i=1; i<=NF; i++) printf toupper(substr($i,1,1)) substr($i,2);printf "\n"}'
发布于 2018-08-23 05:02:41
如果您不必使用sed,请尝试perl:
$ echo 'select-value-but-not-that-one'|perl -pe 's/-(\w)/\u$1/g'
selectValueButNotThatOne
https://stackoverflow.com/questions/51974340
复制相似问题