我已经在CentOS中尝试了这个正则表达式:
正则表达式:echo 'select-value'|sed -r 's/(-)(\w)/\U\2/g'
输出结果:selectValue
但是在Alpine中,当我尝试下面的正则表达式时,无法得到输出:
正则表达式:echo 'select-value'|sed -r 's/(-)(\w)/\%U\2/g'
输出结果:select%Uvalue
期望输出结果:selectValue
请建议正确的正则表达式。
谢谢!
我已经在CentOS中尝试了这个正则表达式:
正则表达式:echo 'select-value'|sed -r 's/(-)(\w)/\U\2/g'
输出结果:selectValue
但是在Alpine中,当我尝试下面的正则表达式时,无法得到输出:
正则表达式:echo 'select-value'|sed -r 's/(-)(\w)/\%U\2/g'
输出结果:select%Uvalue
期望输出结果:selectValue
请建议正确的正则表达式。
谢谢!
看起来alpine默认使用busybox sed。您需要安装gnu sed(它可能已经安装了)。
在docker alpine 3.5容器中,我尝试了这个命令echo 'select-value'|/bin/sed -r 's/(-)(\w)/\U\2/g'
,并且它可以正常工作。请注意/bin/sed
部分。Gnu sed已经安装在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"}'
$ echo 'select-value-but-not-that-one'|perl -pe 's/-(\w)/\u$1/g'
selectValueButNotThatOne
sed
命令中有意放置了百分号%
还是打错字了? - Master_ex