bash
Wenn Sie Ihre Zeichenfolge in einer Variablen gespeichert haben, können Sie sie seitdem auch nur in der Shell ausführen:
uscore="this_is_the_string_to_be_converted"
arr=(${uscore//_/ })
printf %s "${arr[@]^}"
ThisIsTheStringToBeConverted
${uscore//_/ }
Ersetzt all _
durch Leerzeichen, (....)
teilt den String in ein Array, ${arr[@]^}
konvertiert den ersten Buchstaben jedes Elements in Großbuchstaben und printf %s ..
druckt dann alle Elemente nacheinander.
Sie können die Zeichenfolge mit dem Kamel in einer anderen Variablen speichern:
printf -v ccase %s "${arr[@]^}"
und später verwenden / wiederverwenden, zB:
printf %s\\n $ccase
ThisIsTheStringToBeConverted
Oder mit zsh
:
uscore="this_is_the_string_to_be_converted"
arr=(${(s:_:)uscore})
printf %s "${(C)arr}"
ThisIsTheStringToBeConverted
(${(s:_:)uscore})
Teilt den String _
in ein Array auf, (C)
schreibt den ersten Buchstaben jedes Elements in Großbuchstaben und printf %s ...
druckt alle Elemente nacheinander aus.
Um ihn in einer anderen Variablen zu speichern, können Sie (j::)
die Elemente verbinden:
ccase=${(j::)${(C)arr}}
und später verwenden / wiederverwenden:
printf %s\\n $ccase
ThisIsTheStringToBeConverted
\U\2
fügt den gefundenen Text aus der zweiten Gruppe ein, der in ALL CAPS konvertiert wurde. Vergleichen Sie mit\u\2
, um den Text in Groß- und Kleinschreibung einzufügen. Dabei wird nur das erste Zeichen großgeschrieben. (2) Alle unten aufgeführten Beispiele übersetzen "this_is_a_string" in "ThisIsAString". Dies ist genau das, wonach Sie gefragt haben, aber es ist etwas schwer zu lesen. Möglicherweise möchten Sie Ihre Anforderungen für den Sonderfall eines Ein-Buchstaben-Wortes (Teilzeichenfolge) überarbeiten. … (Fortsetzung)