Как разделить несколько страниц текста (80000 слов), которые мне нужно разделить на 160 символов на страницу в текстовом редакторе?
У меня есть несколько страниц текста (80000 слов), которые я должен преобразовать и разделить на максимум 160 символов на страницу.
Кто-нибудь из вас может помочь мне сделать это в BBedit или Sublime Text (Mac)?
2 ответа
Несколько курсоров Sublime действительно мощные. В сочетании с регулярными выражениями, вы можете делать много интересных вещей в редакторе, включая это.
- Нажмите Ctrl+F, чтобы открыть ящик поиска.
- Убедитесь, что регулярные выражения включены (Alt+R для переключения).
- Тип
(.|\n){1,160}[ .!?]
, Если вы нажмете Enter несколько раз, вы увидите каждую страницу, выбранную по очереди. - Нажмите Alt+Enter, чтобы выбрать несколько страниц одновременно.
- Нажмите стрелку вправо, чтобы поместить курсор в конец каждой страницы.
- Введите все, что вы хотите, чтобы разделить свои страницы. Например, дважды нажмите Enter, введите длинную строку "-", а затем дважды нажмите Enter.
Почему регулярное выражение работает
Регулярное выражение ищет любой символ (включая новые строки), повторенный от 1 до 160 раз, включительно: (.|\n){1,160}
, Однако он будет совпадать только в том случае, если сможет найти пробел или знак препинания после этих символов: [ .!?]
, Поскольку регулярные выражения стремятся (они соответствуют самой длинной возможной строке, даже если меньшие подстроки также совпадают), каждая совпадающая строка будет самой длинной строкой, состоящей из от 1 до 160 символов, за которыми следует пробел или знак пунктуации.
(Кстати, вы имели в виду 1600 символов? Страницы с 160 символами действительно очень маленькие страницы.)
Если у вас установлены инструменты GNU, вы можете сделать это из командной строки.
Вы не указали, как вы хотели бы разбить эти страницы помимо количества символов. split может сделать это с помощью параметра -b. Что-то вроде:
# split -b 160 inputfile split
Должен сделать это. Удвойте количество байтов, если вы используете многобайтовый набор символов. Если вы используете UTF-8, вам сначала нужно конвертировать в UTF-16.