JSONL 合并器
将多个 JSONL(JSON Lines)文件合并为一个文件。重新排序、去重和验证行。100% 客户端处理,数据不会离开您的浏览器。
输入文件
拖拽 .jsonl 文件到此处,或点击选择多个文件
支持 .jsonl, .ndjson, .json, .txt
合并选项
输入文件
拖拽 .jsonl 文件到此处,或点击选择多个文件
支持 .jsonl, .ndjson, .json, .txt
合并选项
合并输出
拖入或选择 JSONL 文件进行合并
为什么 cat file1.jsonl file2.jsonl 可能会损坏数据
拼接看似是合并 JSONL 最直接的方法,而且在某个文件缺少末尾换行符之前,它确实一直有效。此时,前一个文件的最后一条记录会与后一个文件的第一条记录粘连,形成一行无效数据:
# file1.jsonl 末尾没有换行符:{"id": 1}{"id": 2}⏎missing# file2.jsonl:{"id": 3}# cat file1.jsonl file2.jsonl 的输出:{"id": 1}{"id": 2}{"id": 3} ← one broken line: parse error, two records lost
此工具会检查每个输入的最后一个字节,并在拼接前补上缺失的换行符,因此无论输入文件以何种方式保存,合并后的输出始终有效。如果必须在管道中使用 cat,稳妥的写法是:awk 1 file1.jsonl file2.jsonl(awk 会确保每一行都以换行符结束)。
如何合并 JSONL 文件
选择或拖入多个 JSONL 文件到上传区域。每个文件完全在浏览器中读取 — 不会将任何数据发送到服务器。文件可以是 .jsonl、.ndjson、.json 或 .txt 格式。
上传后,您可以使用上/下箭头重新排序文件以控制合并顺序。启用去重选项可根据完整内容删除重复行,或启用 JSON 验证以跳过无效的 JSON 行。
合并输出在预览面板中显示前 100 行。将完整的合并文件下载为 .jsonl 文件或复制到剪贴板。统计信息显示总行数、文件大小以及删除的重复项或无效行数。
精确的合并语义
- 顺序
- 文件会按添加顺序拼接,每个文件内部的记录顺序也会保留。合并仅执行追加操作,不会对记录重新排序、改写或重新格式化。
- 边界修复
- 任何输入末尾缺失的换行符都会自动补齐(参见上例)。记录之间的空行会被移除,因为某些使用方不接受空行。
- 去重:精确匹配行
- 可选。只有原始行的字节完全相同时,两条记录才会被视为重复项。{"a":1,"b":2} 和 {"b":2,"a":1} 不会被去重,因为即使 JSON 值相等,键顺序不同也会导致行内容不同。如果需要按值去重,请先使用格式化工具的键排序选项进行规范化。
- 与拆分工具往返转换
- 合并与拆分完全互逆:将文件拆分为 N 个分块,再按顺序合并,所得结果与原文件在字节层面完全相同(关闭去重时)。这一特性使“拆分 → 并行处理 → 合并”成为一种安全的管道模式。
什么是 JSONL 合并?
JSONL 合并是将多个 JSONL(JSON Lines)文件组合成单个文件的过程。每个输入文件每行包含一个 JSON 对象,合并器将所有文件的所有行连接到一个输出文件中,同时保持您指定的顺序。
当处理分散在多个文件中的数据集时,这一功能非常重要 — 例如训练数据分片、每日日志导出或分块的 API 响应。合并将它们整合为单个文件,便于处理、分析或上传到需要单个 JSONL 输入的平台。
常见错误与解决方案
跨文件的重复记录
合并重叠的 JSONL 导出(例如时间戳重叠的每日日志)时可能出现重复。启用「去除重复项」选项可根据精确行内容自动去重。对于语义去重(相同数据,不同格式),请先使用 JSONL 格式化工具统一所有文件的格式。
文件间编码不一致
来自不同来源的文件可能使用不同的字符编码(UTF-8、带 BOM 的 UTF-8、Windows-1252)。这可能导致某些文件的第一行 JSON 解析失败。合并前请确保所有文件保存为不带 BOM 的 UTF-8。
跨文件的 Schema 不一致
来自不同来源的 JSONL 文件可能具有不同的键结构。虽然合并器会忽略 Schema 差异直接合并文件,但下游工具可能需要一致的 Schema。使用 JSONL 验证器验证合并输出,确保每行都是有效的 JSON。
常见用例
数据集整合
将多个 JSONL 训练数据分片合并为单个文件,上传到 OpenAI fine-tuning、HuggingFace 或其他 ML 平台。
数据管道组装
将并行数据处理管道的输出文件合并为单个 JSONL 文件,供下游使用。
ML 训练数据准备
将来自多个来源的 prompt-completion 对整合为一个 JSONL 文件,用于模型 fine-tuning。
日志文件聚合
将每日或每小时的 JSONL 日志导出合并为单个文件,进行全面的日志分析和搜索。
团队协作
将不同团队成员贡献的 JSONL 数据文件合并为统一的数据集,用于共享分析。
分析数据合并
合并来自多个服务或不同时间段的 JSONL 事件数据,进行统一的分析和报告。
常见问题
JSONL 合并器如何合并文件?
是的。所有合并操作都在浏览器本地进行,不会将任何文件数据上传到服务器。您的 JSONL 文件永远不会离开您的设备。
JSONL 合并器可以去除重复行吗?
文件数量没有硬性限制。您可以添加任意数量的 JSONL 文件。但由于所有文件都加载到浏览器内存中,非常大的组合数据集(数百 MB)可能会根据您的设备性能变慢。
这个 JSONL 合并器会上传我的数据吗?
去重比较每行经过去除首尾空格后的完整内容。如果两行完全相同(相同字符、相同顺序),第二次出现将被删除。这是精确匹配去重 — 具有相同数据但不同键顺序或空格的行被视为不同行。
可以用这个工具合并 NDJSON 文件吗?
可以。上传后,使用每个文件旁边的上下箭头按钮重新排序。合并输出从上到下按照文件顺序进行。
一次可以合并多少个文件?
空行和仅包含空格的行在文件读取过程中会被自动过滤掉。它们不会出现在合并输出中。这遵循 JSONL 规范中忽略空行的规定。
如何将合并后的 JSONL 文件再次拆分?
可以。合并器忽略 Schema 差异直接合并文件。每行保持原样不变。如果需要 Schema 一致性,请在合并前单独验证或转换文件。
合并器会保留原始文件顺序吗?
是的。每个文件中的行保持其原始顺序。文件按照文件列表中显示的顺序连接。您可以在合并前调整文件顺序。
可以合并不同 Schema 的文件吗?
此工具提供可视化界面,支持拖放上传、文件重新排序、去重、JSON 验证、行数统计和即时预览。与使用 cat 或 copy 命令手动连接不同,它自动处理尾部换行和空行等边界情况。