Como está utilizando bash
, si almacenó su cadena en una variable, también podría hacerlo solo con shell:
uscore="this_is_the_string_to_be_converted"
arr=(${uscore//_/ })
printf %s "${arr[@]^}"
ThisIsTheStringToBeConverted
${uscore//_/ }
reemplaza todo _
con espacio, (....)
divide la cadena en una matriz, ${arr[@]^}
convierte la primera letra de cada elemento en mayúsculas y luego printf %s ..
imprime todos los elementos uno tras otro.
Puede almacenar la cadena en camello en otra variable:
printf -v ccase %s "${arr[@]^}"
y usarlo / reutilizarlo más tarde, por ejemplo:
printf %s\\n $ccase
ThisIsTheStringToBeConverted
O con zsh
:
uscore="this_is_the_string_to_be_converted"
arr=(${(s:_:)uscore})
printf %s "${(C)arr}"
ThisIsTheStringToBeConverted
(${(s:_:)uscore})
divide la cadena _
en una matriz, (C)
escribe en mayúscula la primera letra de cada elemento e printf %s ...
imprime todos los elementos uno tras otro.
Para almacenarlo en otra variable que podría usar (j::)
para unir los elementos:
ccase=${(j::)${(C)arr}}
y úsalo / reutilízalo más tarde:
printf %s\\n $ccase
ThisIsTheStringToBeConverted
\U\2
inserta el texto encontrado del segundo grupo, convertido a TODAS LAS MAYÚSCULAS. Compare con\u\2
, que inserta el texto en el caso Sentencia, con solo el primer carácter en mayúscula. (2) Todos los ejemplos que figuran a continuación traducirán "this_is_a_string" a "ThisIsAString", que es lo que solicitó, pero es un poco difícil de leer. Es posible que desee revisar sus requisitos para el caso especial de una palabra de una letra (subcadena). ... (Continúa)