У меня есть несколько страниц текста (80 000 слов), которые я должен преобразовать и разделить на максимум 160 символов на страницу.

Кто-нибудь из вас может помочь мне сделать это в BBedit или Sublime Text (Mac)?

2 ответа2

1

Несколько курсоров Sublime действительно мощные. В сочетании с регулярными выражениями, вы можете делать много интересных вещей в редакторе, включая это.

  1. Нажмите Ctrl+F, чтобы открыть ящик поиска.
  2. Убедитесь, что регулярные выражения включены (Alt+R для переключения).
  3. Тип (.|\n){1,160}[ .!?] . Если вы нажмете Enter несколько раз, вы увидите каждую страницу, выбранную по очереди.
  4. Нажмите Alt+Enter, чтобы выбрать несколько страниц одновременно.
  5. Нажмите стрелку вправо, чтобы поместить курсор в конец каждой страницы.
  6. Введите все, что вы хотите, чтобы разделить свои страницы. Например, дважды нажмите Enter , введите длинную строку «-», а затем дважды нажмите Enter .

Почему регулярное выражение работает

Регулярное выражение ищет любой символ (включая новые строки), повторенный где угодно от 1 до 160 раз, включительно: (.|\n){1,160} . Однако он будет совпадать только в том случае, если сможет найти пробел или знак препинания после этих символов: [ .!?] . Поскольку регулярные выражения стремятся (они соответствуют самой длинной возможной строке, даже если меньшие подстроки также соответствуют), каждая совпадающая строка будет самой длинной строкой, состоящей из от 1 до 160 символов, за которыми следует пробел или знак пунктуации.

(Кстати, вы имели в виду 1600 символов? Страницы из 160 символов действительно очень маленькие.)

0

Если у вас установлены инструменты GNU, вы можете сделать это из командной строки.

Вы не указали, как вы хотели бы разбить эти страницы помимо количества символов. split может сделать это с помощью параметра -b. Что-то вроде:

# split -b 160 inputfile split

Должен сделать это. Удвойте количество байтов, если вы используете многобайтовый набор символов. Если вы используете UTF-8, вам нужно сначала конвертировать в UTF-16.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .