Решение лежало в инструменте, о котором я не задумывался серьезно - awk
awk 'BEGIN { FS="\\\\par" } ; /^ / /^[^ ]/ '
Это будет проходить по файлу, с \ par в качестве разделителя полей, и будет печатать \ par перед любой строкой, начинающейся с 4 пробелов (которая отмечает начало нового абзаца), и удалит (или просто не будет печатать) это когда он начинается с чего-либо, кроме пробела.
Теперь у нас есть файл с \ par только там, где должны быть допустимые разрывы строк. Следующим шагом будет полное удаление всех новых строк, чтобы избавиться от мошеннических разрывов строк:
tr -d '\r\n'
А затем передайте результат в sed, чтобы заменить \ par на \ par \ r \ n, практически добавив новую строку, где находится \ par.
sed 's/\\par/\\par\r\n/g'
И сделано.
Единственная проблема, с которой я столкнулся при использовании этого метода, заключается в том, что он испортил заголовок RTF. Нет проблем, я просто скопировал поверх заголовка из исходного файла.
Другая небольшая проблема заключалась в том, что названия глав печатались в соответствии с предыдущими абзацами. Это потому, что названия глав не начинаются с пробела, но должны рассматриваться как абзацы. В моем случае главы были помечены так:
ГЛАВА ТРИДЦАТЬ ВТОРАЯ
Название главы
Поэтому быстрый сед позаботился о них:
sed 's/\s*\(CHAPTER [[:upper:]-]* \)\(.*\\par\)/\\par\r\n\\par\r\n\\par\r\n\1\\par\r\n\2\\par\r\n/'
Теперь у меня есть книга в правильном формате, что позволяет читать ее на других устройствах (например, на моем iPod).