Оскільки ви використовуєте bash, якщо ви зберігали рядок у змінній, ви також можете робити це лише в оболонці:
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вставляє знайдений текст із другої групи, перетворений на ВСІ КАПС. Порівняйте\u\2, що вставляє текст у випадку виправдання, лише з першого символу. (2) Усі приклади, наведені нижче, перекладуть "this_is_a_string" на "ThisIsAString" - це те, про що ви просили, але його важко прочитати. Можливо, ви хочете переглянути свої вимоги до особливого випадку однобуквеного слова (підрядка). … (Продовжував)