正则表达式在高山Linux中成为骆驼的案例

时间:2018-08-22 20:06:05

标签: regex sed alpine

我已经在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

请提出正确的正则表达式。

谢谢

2 个答案:

答案 0 :(得分:0)

如果您没有使用sed,请尝试使用perl:

$ echo 'select-value-but-not-that-one'|perl -pe 's/-(\w)/\u$1/g'
selectValueButNotThatOne

答案 1 :(得分:0)

似乎alpine默认使用sed的busybox。您必须安装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"}'