Форум русскоязычного сообщества Ubuntu


Получить помощь и пообщаться с другими пользователями Ubuntu можно
на irc канале #ubuntu-ru в сети Freenode
и в Jabber конференции ubuntu@conference.jabber.ru

Автор Тема: Как заменить ПриветКакДела на привет как дела?  (Прочитано 1835 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн fox77

  • Автор темы
  • Любитель
  • *
  • Сообщений: 73
    • Просмотр профиля
Имеем текстовый файл, в котором простой текст utf-8 и иногда попадаются пропуски пробелов + заглавные буквы, например:
ПриветКакДела
ВотКакЭтоИсправить

Как бы это переделать в читаемый текст?
Т.е. если в середине набора букв встречается заглавная буква, то нужно ее заменить на маленькую и поставить перед ней пробел...
Получится такое сделать в шеле?  :)

Оффлайн Charles Malaheenee

  • Активист
  • *
  • Сообщений: 756
  • Учтите, мы можем дать и вредный совет.
    • Просмотр профиля
sed (просто) или awk (сложно, но гибко) Вам в помощь.
Debian Sid (XFCE) x 2; Debian Sid (Openbox) x 1.
Все мы где-то, когда-то и в чем-то были новичками.

Оффлайн alexander.pronin

  • Старожил
  • *
  • Сообщений: 2540
    • Просмотр профиля
$ echo "ВотКакЭтоИсправить" | sed 's/[ВКЭИ]/ &/g'
 Вот Как Это Исправить

Оффлайн alecsartania

  • Старожил
  • *
  • Сообщений: 1557
  • УМка.
    • Просмотр профиля
$ echo "ВотКакЭтоИсправить" | sed 's/[ВКЭИ]/ &/g'
 Вот Как Это Исправить
типа прикололся - ту TC - не обащай внимания
Дома Linux mint 15 ||  Ubuntu 14.04  / Ubuntu 17.03
Работа: Linux Mint 18(Ub 16.04)

Оффлайн dmig

  • Старожил
  • *
  • Сообщений: 1668
    • Просмотр профиля
идея с регулярками верная. в общем случае 2 шага:
1) выражением получить все заглавные буквы, перед которыми тоже строчная буква: /\W([А-ЯЁ])[а-яё]/
2) заменить эти буквы на ' ' + буква (в нижнем, ессно, регистре)

Оффлайн alexander.pronin

  • Старожил
  • *
  • Сообщений: 2540
    • Просмотр профиля
Большие буквы на мелкие лучше всего менять с помощью утилиты tr.

 

Страница сгенерирована за 0.053 секунд. Запросов: 24.