由于您正在使用bash
,如果您将字符串存储在变量中,则也可以仅使用shell进行操作:
uscore="this_is_the_string_to_be_converted"
arr=(${uscore//_/ })
printf %s "${arr[@]^}"
ThisIsTheStringToBeConverted
${uscore//_/ }
_
用空格替换所有内容,(....)
将字符串拆分为数组,${arr[@]^}
将每个元素的首字母转换为大写,然后依次printf %s ..
打印所有元素。
您可以将驼峰式字符串存储到另一个变量中:
printf -v ccase %s "${arr[@]^}"
并在以后使用/重用它,例如:
printf %s\\n $ccase
ThisIsTheStringToBeConverted
或者,使用zsh
:
uscore="this_is_the_string_to_be_converted"
arr=(${(s:_:)uscore})
printf %s "${(C)arr}"
ThisIsTheStringToBeConverted
(${(s:_:)uscore})
将字符串分割_
成一个数组,(C)
将每个元素的首字母大写,然后printf %s ...
依次打印所有元素。
要将其存储在另一个变量中,可以(j::)
用来连接元素:
ccase=${(j::)${(C)arr}}
并在以后使用/重用它:
printf %s\\n $ccase
ThisIsTheStringToBeConverted
\U\2
将第二组中找到的文本插入,转换为ALL CAPS。与相比\u\2
,在句子大小写的情况下插入文本,只有第一个字符大写。(2)下面给出的所有示例都将“ this_is_a_string”转换为“ ThisIsAString”,这是您所要求的,但是有点难以理解。您可能需要修改对一个字母组成的单词(子字符串)的特殊情况的要求。…(续)