lowercase, UPPERCASE Как использовать терминал для быстрой конвертации букв в строчные и заглавные? Преобразовать буквы в строке в строчные или ЗАГЛАВНЫЕ можно используя такие средства, например как: tr, awk, sed, sh, perl, python, ruby.
Рассмотрим подробнее. Каждый способ представляет собой однострочный скрипт, который можно выполнить в терминале, доставать из истории по Ctrl+R и применять к нужному тексту. Первый вариант преобразует заглавные в прописные буквы, второй - наоборот.
SH вероятно самый простой и естественный вариант для терминала, поскольку не использует внешних утилит: a="UPPERCASE ЗАГЛАВНЫЕ -> lovercase строчные"; echo "${a,,}" a="lovercase строчные -> UPPERCASE ЗАГЛАВНЫЕ"; echo "${a^^}"
TR не самый лучший метод, поскольку работает только с латиницей: echo "UPPERCASE ЗАГЛАВНЫЕ -> lovercase строчные" | tr "[:upper:]" "[:lower:]" echo "lovercase строчные -> UPPERCASE ЗАГЛАВНЫЕ" | tr "[:lower:]" "[:upper:]"
PERL также не умеет кириллицу и приводится в образовательных целях:
a="UPPERCASE ЗАГЛАВНЫЕ -> lovercase строчные" ; echo "$a" | perl -ne 'print lc' a="lovercase строчные -> UPPERCASE ЗАГЛАВНЫЕ" ; echo "$a" | perl -ne 'print uc'
AWK уже универсальнее:
a="UPPERCASE ЗАГЛАВНЫЕ -> lovercase строчные" ; echo "$a" | awk '{print tolower($0)}' a="lovercase строчные -> UPPERCASE ЗАГЛАВНЫЕ" ; echo "$a" | awk '{print toupper($0)}'
SED использует регулярные выражения. Жирным выделены буквы L и U, определяющие в каком регистре будет отображена строка. Второй вариант для заглавных букв просто записан иначе, чем первый. Правильны оба:
a="UPPERCASE ЗАГЛАВНЫЕ -> lovercase строчные"; echo "$a" | sed -e 's/\(.*\)/\L\1/' sed -e 's/\(.*\)/\U\1/' <<< "lovercase строчные -> UPPERCASE ЗАГЛАВНЫЕ"
PYTHON вариант хорош наглядностью результирующего регистра:
echo "print('UPPERCASE ЗАГЛАВНЫЕ -> lovercase строчные'.lower())" |python3 echo "print('lovercase строчные -> UPPERCASE ЗАГЛАВНЫЕ'.upper())" |python3
RUBY тоже неплохой вариант, только не добавляет перевода строки к результату:
echo "print 'UPPERCASE ЗАГЛАВНЫЕ -> lovercase строчные'.downcase" |ruby echo "print 'lovercase строчные -> UPPERCASE ЗАГЛАВНЫЕ'.upcase" |ruby
Использованные ссылки:
|