Regex sed:用Camel:Case替换CamelCase

Regex sed:用Camel:Case替换CamelCase,regex,bash,sed,Regex,Bash,Sed,我试图在小写字母后紧跟大写字母的地方插入冒号,并在第一个单词周围添加字符:(从CamelCase到:Case) 这是我的最佳拍摄,基于: 我缺少什么?试试这个sed: echo 'CamelCase' | sed -e 's/\([a-z]\)\([A-Z]\)/\1:\2/g' Camel:Case 更新:根据评论: echo'CamelCase'| sed-e's/\([A-Z][A-Z]*\)\([A-Z]\)/:\2/g' :案例 很好,但是如果我想给冒号前面的单词上色怎么办?“'s/

我试图在小写字母后紧跟大写字母的地方插入冒号,并在第一个单词周围添加字符:(从
CamelCase
:Case

这是我的最佳拍摄,基于:


我缺少什么?

试试这个
sed

echo 'CamelCase' | sed -e 's/\([a-z]\)\([A-Z]\)/\1:\2/g'
Camel:Case
更新:根据评论:
echo'CamelCase'| sed-e's/\([A-Z][A-Z]*\)\([A-Z]\)/:\2/g'
:案例

很好,但是如果我想给冒号前面的单词上色怎么办?“
's/\([a-z]\)\([a-z]\)/\'${g}'\1:\'${x}'\2/g'
”只影响冒号前的最后一个字母。。。(
g='\e[0;32m'x='\e[0m'
)对于着色,我认为需要使用转义序列,并且高度依赖于终端。很抱歉,我自己不记得那些颜色代码。我也可以要求您为着色问题创建一个单独的问题,以获得更好的答案。让这成为驼峰问题。颜色代码很好。问题是正则表达式,它无法匹配第一个单词。换句话说,我如何从
CamelCase
\u Camel:Case
?好的,这个命令应该是:
echo'CamelCase';sed-e's/\([a-z]\)\([a-z]\)/\1:\2/g'-e's/\([^:*\):/\u1://
echo 'CamelCase' | sed -e 's/\([a-z]\)\([A-Z]\)/\1:\2/g'
Camel:Case
echo 'CamelCase' | sed -e 's/\([A-Z][a-z]*\)\([A-Z]\)/<\1>:\2/g'
<Camel>:Case