]]> ]]>

CamelCase в Unix shell

Пример для версий Bash 4.0.35, Bash 4.1.5

Используются регулярные выражения. Первая строка читает с консоли строку для обработки $text. Вторая — переводит ее в нижний регистр. Затем в полученной строке ищутся последовательности букв — слова — по одному за раз. Каждое слово выделяется (переменная BASH_REMATCH содержит информацию о последовательности символов, которая соответствует регулярному выражению, которое в последний раз искали в строке), заменяется на пробел в исходной строке (во избежание повторного нахождения) и добавляется к результату $cc в нужном регистре (функция ${word^} переводит первый символ аргумента в верхний регистр). Наконец, результат выводится на печать.

read text
text=${text,,}
cc=""
regex='([a-z]+)'
while [[ $text =~ $regex ]]
do
    word=${BASH_REMATCH[1]}
    text=${text/$word/ }
    cc=$cc${word^}
done
echo $cc

Комментарии

]]>

blog comments powered by Disqus

]]>

Работа программистам