A solução mentiu em uma ferramenta Eu não tenho pensado seriamente - awk
awk 'BEGIN { FS="\\par" } ; /^ / {print "\par" $1} /^[^ ]/ {print " " $1}'
Isso irá passar pelo arquivo, com \ par como separador de campo, e imprimirá um \ par antes de qualquer linha que comece com 4 espaços (que marca o início de um novo parágrafo), e remova (ou simplesmente não imprima) quando começar com qualquer coisa além de um espaço.
Agora, o que temos é um arquivo com \ par somente quando as quebras de linha legais devem ser. O próximo passo seria remover todas as novas linhas, para se livrar de quebras de linha não autorizadas:
tr -d '\r\n'
Em seguida, alimente o resultado para sed para substituir \ par com \ par \ r \ n , praticamente adicionando uma nova linha em que \ par é.
sed 's/\par/\par\r\n/g'
E pronto.
O único problema real que encontrei com esse método é que ele arruinou o cabeçalho RTF. Não tem problema, acabei de copiar o cabeçalho do arquivo original.
Outra questão menor era que os títulos dos capítulos estavam sendo impressos em linha com os parágrafos anteriores. Isso ocorre porque os títulos dos capítulos não começam com um espaço, mas devem ser considerados como um parágrafo. No meu caso, os capítulos foram marcados assim:
CHAPTER THIRTY-TWO
Chapter's Name
Um sed rápido cuidou deles:
sed 's/\s*\(CHAPTER [[:upper:]-]* \)\(.*\par\)/\par\r\n\par\r\n\par\r\n\par\r\n\par\r\n/'
Agora tenho meu livro no formato adequado, o que o torna legível em outros dispositivos (como o meu iPod).