作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试将具有 -
(连字符)或 _
(下划线)的字符串转换为 Capital_Case 字符串。
#!/usr/bin/env sh
function cap_case() {
[ $# -eq 1 ] || return 1;
_str=$1;
_capitalize=${_str//[-_]/_} | sed -E 's/(^|_)([a-zA-Z])/\u\2/g'
echo "Capitalize:"
echo $_capitalize
return 0
}
read string
echo $(cap_case $string)
但我没有得到任何东西。
首先,我将所有出现的 -
和 _
替换为 _
${_str//[-_]/_ }
,然后我将该字符串通过管道传递给 sed
,它会找到第一个字母,或者 _
作为第一组,然后是第一组之后的字母第二组,我想用 \u\2
将找到的字母大写。我尝试使用 \U\2
但效果不佳。
我希望字符串 some_string
成为
Some_String
和字符串some-string
成为
Some_String
我在 mac 上,如果有帮助,我会使用 zsh。
最佳答案
编辑:此处使用更通用的解决方案,使每个字段的首字母大写。
echo "some_string_other" | awk -F"_" '{for(i=1;i<=NF;i++){$i=toupper(substr($i,1,1)) substr($i,2)}} 1' OFS="_"
遵循 awk
可能会对您有所帮助。
echo "some_string" | awk -F"_" '{$1=toupper(substr($1,1,1)) substr($1,2);$2=toupper(substr($2,1,1)) substr($2,2)} 1' OFS="_"
输出如下。
echo "some_string" | awk -F"_" '{$1=toupper(substr($1,1,1)) substr($1,2);$2=toupper(substr($2,1,1)) substr($2,2)} 1' OFS="_"
Some_String
关于shell - sed Capital_Case 不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49690216/
我正在尝试将具有 -(连字符)或 _(下划线)的字符串转换为 Capital_Case 字符串。 #!/usr/bin/env sh function cap_case() { [ $# -eq
我是一名优秀的程序员,十分优秀!