You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Windows命令行下EPUB转TXT并保留换行格式的方法求助

解决方案:批量将EPUB转换为保留换行格式的TXT

方法一:使用Calibre命令行工具(推荐,复用GUI的有效转换逻辑)

既然Calibre GUI的转换效果符合你的需求,它的命令行工具ebook-convert可以完全复用相同的格式保留逻辑,且资源占用更低,适合批量处理。

单文件转换命令

ebook-convert input.epub output.txt --keep-lines

--keep-lines参数会精准保留EPUB中<p><br/></p>定义的换行格式。

批量处理脚本

Linux/macOS(Bash)

创建batch_convert.sh文件:

#!/bin/bash
for epub_file in *.epub; do
    txt_file="${epub_file%.epub}.txt"
    ebook-convert "$epub_file" "$txt_file" --keep-lines
done

赋予执行权限后运行:

chmod +x batch_convert.sh
./batch_convert.sh

Windows(批处理)

创建batch_convert.bat文件:

@echo off
for %%f in (*.epub) do (
    ebook-convert "%%f" "%%~nf.txt" --keep-lines
)

双击即可批量转换当前目录下所有EPUB文件。

方法二:Pandoc配合Lua过滤器

如果坚持使用Pandoc,需要通过Lua过滤器识别<p><br/></p>元素,强制保留换行。

步骤1:创建过滤器文件preserve_breaks.lua

function Para(p)
    -- 检测仅包含换行符的段落
    if #p.content == 1 and p.content[1].t == "LineBreak" then
        -- 返回两个换行符匹配原格式
        return pandoc.Para{pandoc.LineBreak(), pandoc.LineBreak()}
    end
    return p
end

步骤2:执行转换命令

pandoc -f epub -t plain --lua-filter=preserve_breaks.lua --wrap preserve -o output.txt input.epub

批量处理脚本(Bash)

#!/bin/bash
for epub_file in *.epub; do
    txt_file="${epub_file%.epub}.txt"
    pandoc -f epub -t plain --lua-filter=preserve_breaks.lua --wrap preserve -o "$txt_file" "$epub_file"
done

内容的提问来源于stack exchange,提问作者mysther

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.24 23:27:21