Как разделить несколько страниц текста (80 000 слов), которые мне нужно разделить на 160 символов на страницу в текстовом редакторе?

365
Martinelli

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

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

0
Зачем? 160 символов - это всего лишь 3 строки текста на странице. psusi 9 лет назад 0
Все ли символы / слова в одной строке или они уже разбиты на несколько строк? Andres Riofrio 9 лет назад 0
Не берите в голову, я разобрался, как заставить это работать, даже если они разделены между многими линиями. :) Andres Riofrio 9 лет назад 0

2 ответа на вопрос

1
Andres Riofrio

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

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

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

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

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

0
krowe

If you have GNU tools installed you can do this from the command line.

You haven't specified how you'd like to break these pages aside from by the number of characters. split can do this using the -b parameter. Something like:

# split -b 160 inputfile split 

Should do it. Double the byte count if you are using a multibyte character set. If you're using UTF-8 you will need to convert to UTF-16 first.

Будет ли это работать только при подсчете символов или может делиться на «логические» разрывы, как после последнего пробела или знака препинания, который не превышает 160 символов? fixer1234 9 лет назад 0
Он будет работать только на строки или байты AFAIK. `cntr = 1; для фрагмента в` sed -e 's /. \ / & \ n / g' source.txt`; do echo $ chunk> chunk $ cntr.txt; cntr = $ (($ cntr + 1)); done` будет разделять каждые 70 слов. (обратите внимание, что на веб-сайте скрываются два обратных знака) krowe 9 лет назад 0
@krowe вы можете избежать обратных кавычек с обратной косой чертой (то есть `\\` `),` для чанка в \ `sed ... \`; ... сделано` Trojan 9 лет назад 1
`cntr = 1; для чанка в \` sed -e 's /. \ / & \ n / g' source.txt \ `; do echo $ chunk> chunk $ cntr.txt; cntr = $ (($ cntr + 1)); done` krowe 9 лет назад 0

Похожие вопросы