Como você está usando bash
, se você armazenou sua string em uma variável, você também pode fazer isso apenas com shell:
uscore="this_is_the_string_to_be_converted"
arr=(${uscore//_/ })
printf %s "${arr[@]^}"
ThisIsTheStringToBeConverted
${uscore//_/ }
substitui todo o _
pelo espaço, (....)
divide a sequência em uma matriz, ${arr[@]^}
converte a primeira letra de cada elemento em maiúscula e, em seguida, printf %s ..
imprime todos os elementos um após o outro. br>
Você pode armazenar a string de camelo em outra variável:
printf -v ccase %s "${arr[@]^}"
e use / reutilize mais tarde, por exemplo:
printf %s\n $ccase
ThisIsTheStringToBeConverted
Ou com zsh
:
uscore="this_is_the_string_to_be_converted"
arr=(${(s:_:)uscore})
printf %s "${(C)arr}"
ThisIsTheStringToBeConverted
(${(s:_:)uscore})
divide a sequência em _
em uma matriz, (C)
capitaliza a primeira letra de cada elemento e printf %s ...
imprime todos os elementos um após o outro.
Para armazená-lo em outra variável, você pode usar (j::)
para unir os elementos:
ccase=${(j::)${(C)arr}}
e use / reutilize mais tarde:
printf %s\n $ccase
ThisIsTheStringToBeConverted