Jeśli mam ciąg, który wygląda tak:
"this_is_the_string"
Wewnątrz skryptu bash chciałbym przekonwertować go na PascalCase, tj. UpperCamelCase, aby wyglądał następująco:
"ThisIsTheString"
Przekonałem się, że konwersję do lowerCamelCase można wykonać w następujący sposób:
"this_is_the_string" | sed -r 's/([a-z]+)_([a-z])([a-z]+)/\1\U\2\L\3/'
Niestety nie znam wystarczająco dobrze wyrażeń regularnych, aby to zmienić.
(^|_)
na (\<|_)
.
\U\2
wstawia znaleziony tekst z drugiej grupy, przekonwertowany na WSZYSTKIE CAPS. Porównaj z\u\2
, która wstawia tekst w przypadku Zdania, z tylko pierwszym znakiem pisanym wielkimi literami. (2) Wszystkie poniższe przykłady przetłumaczą „this_is_a_string” na „ThisIsAString” - o to prosiłeś, ale jest nieco trudny do odczytania. Możesz zrewidować swoje wymagania dotyczące specjalnego przypadku pojedynczego słowa (podłańcucha). … (Ciąg dalszy)