Меню сайта
   Главная   
   Обо мне   
   Статьи   
   Дневник   
   Картинки   
   Файлы   
   Форум   
   Гостевая книга   

Категории раздела
Куклы и игрушки [60]
Личное [116]
Музыка [19]
Общее [304]
Японский язык [12]
ZX Spectrum [71]
Субмарины [98]
Настольные игры [34]
Го (碁) [11]
Книги [16]
Япония [26]
Таро [4]
Запертый шкаф [17]
CSA (КША) [15]
GNU/Linux [134]
Ubuntu [103]
Manjaro Linux [40]
Python [3]
Магнитольное [44]
Commodore64 [15]
Игровые приставки [2]


 
Дневник (2018 » Июнь » 2 в 03:43)
GNU/Linux Конвертация UPPERCASE <-> lowercase

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

Использованные ссылки:
Категория: GNU/Linux | Просмотров: 590 | Добавил: harushima | Рейтинг: 0.0/0 |
Всего комментариев: 0.
В целях защиты от спама, добавлять комментарии могут только зарегистрированные пользователи. Если Вы не хотите регистрироваться под своим именем, войдите под логином: anonymous, паролем: anonymous.   ( Регистрация,   Вход).
Авторизация
Анонимный вход:
anonymous / anonymous

Календарь
«  Июнь 2018  »
ПнВтСрЧтПтСбВс
    123
45678910
11121314151617
18192021222324
252627282930

Поиск

Облако тэгов
JGSDF игрушки Брюнетки Кладбище сайты Ярость Дракулы Древний Египет девушки кошки Cthulhu Вампиры Kitsune Ужас Аркхема инструмент комиксы Lovecraft готика Submarine submarine rc toy Hosting игротека Ужас Аркхэма book uboat мобильная связь го Edgar Poe swf Mansions of Madness Nightmares персоны Synergy linux-hardware bash youtube Storages Python Мастер-рукожоп Магнитофоны Entropy Grub2 loglevel WiFi Beeline ОПСОСЫ sharp939 Аудиокассеты Windows linuxwork Хочуны ImageMagick топБарыг C64c Commodore

Статистика
Яндекс.Метрика
Онлайн всего: 6
Гостей: 6
Пользователей: 0

Page QR code


Перепечатка материалов сайта без активной ссылки запрещена. Следить за RSS
(c) hermitlair.ucoz.com 2009-2024
Лучший браузер!
Блокировка рекламы