linux shell title case

Я пишу сценарий оболочки и имею такую ​​переменную: something-that-is -имеет дефис .

Мне нужно использовать его в различных местах сценария как:

что-то-то-с-дефисом , что-то сифенированное , SomethingThatIsHyphenated

Мне удалось поменять его на что-то такое, что было финишировано , удалив - с помощью sed "s / - // g" .

Я уверен, что есть более простой способ, а также необходимо знать, как получить версию с верблюжьей оболочкой.

Изменить: рабочая функция, полученная из ответа @Michał

function hyphenToCamel {
    tr '-' '\n' | awk '{printf "%s%s", toupper(substr($0,1,1)), substr($0,2)}'
}

CAMEL=$(echo something-that-is-hyphenated | hyphenToCamel)
echo $CAMEL

Изменить: Наконец, sed one liner благодаря @glenn

echo a-hyphenated-string | sed -E "s/(^|-)([a-z])/\u\2/g"
6
задан Billy Moon 7 August 2011 в 07:16
поделиться