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


Увидели сообщение с непонятной ссылкой, спам, непристойность или оскорбление?
Воспользуйтесь ссылкой «Сообщить модератору» рядом с сообщением!

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

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

Оффлайн fox77

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

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

Оффлайн Charles Malaheenee

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

Оффлайн alexander.pronin

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

Оффлайн alecsartania

  • Старожил
  • *
  • Сообщений: 1564
  • УМка.
    • Просмотр профиля
$ echo "ВотКакЭтоИсправить" | sed 's/[ВКЭИ]/ &/g'
 Вот Как Это Исправить
типа прикололся - ту TC - не обащай внимания
Дома Linux Mint 20.1 / 20.02

Оффлайн dmig

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

Оффлайн alexander.pronin

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

 

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