文件在你的浏览器中读取。不上传任何内容,也不会改动其中任何一个文件。
关于合并文本与 CSV 文件
在 Windows 上,一行命令就够了:copy /b *.csv all.csv。它确实能跑。然后你打开结果,发现三十行表头散落在数据当中,文件顺序错乱,第 5000 行开头还多了一个莫名其妙的字符。
这不是 copy 的缺陷,而是它精确地做了被要求的事:把字节粘在一起,完全不知道这些是带表头的 CSV,也不知道它们保存时用的编码各不相同。
这个工具知道。选一个文件夹或几个文件,决定顺序,就能得到一个干净的文件。
使用方法
- 点击选择存放文本或 CSV 的文件夹,或用或选择单个文件手动挑几个
- 如果文件夹里还有别的东西,在仅这些类型里填 csv 或 txt
- 处理 CSV 时勾选只保留第一行表头
- 在列表中确认顺序——文件自上而下依次合并
- 按开始合并,然后保存结果
`copy /b` 会弄错的四件事
- 表头。 三十份导出就是三十行表头。勾一个选项,就只剩第一行——大多数人来找工具正是为了这个
- 顺序。 *.txt 按字母展开,于是 file10 排在 file2 前面。这里把数字当成数值比较,顺序就是你想要的。你也可以按最旧、最新或最大的在前来合并
- 换行符。 CRLF 的文件后面接上 LF 的文件,有些程序会把结果读成一整行。每一段都会统一成你选择的换行符
- 字节顺序标记。 copy /b 会把它们也粘上,于是一个不可见字符落在文件中间,某一行的第一列就悄悄对不上了。每一段的标记都会被去掉,开头最多只写一个
编码
如果一堆导出文件来自老系统,重音字母和中文都会乱码。选择这些文件真正的编码——西欧用 Windows-1252,西里尔文用 Windows-1251,还有 Shift-JIS、EUC-KR、GBK 或 UTF-16——输出时会全部转换为 UTF-8。
保持在自动判断时,有字节顺序标记就依它判断,否则按 UTF-8 处理。对几乎所有现代文件而言,这是正确的。
其他选项
- 在文件之间插入 — 写在每段之间的分隔行,当各段是不同日期的日志时很有用
- 在每一段前写上文件名 — 形如 ===== report-03.csv ===== 的标题行,方便日后分辨每块内容的来源
- 去掉空行 — 适用于被空行撑开的导出文件
- 包含子文件夹 — 不勾选则只处理最上层
人们用它做什么
- 把一年的月度 CSV 导出合成一个文件,用于数据透视表
- 在搜索之前先把每日日志合并成一份
- 合并分散在许多文件中的聊天或邮件导出
- 把多个文件的问卷或表单回复汇入一张表
- 把按章节分文件写就的书稿或笔记拼装起来
- 从许多文件中构建单一的词表或数据集
值得知道
- 不上传任何内容,你的文件一个都不会被改动——合并结果是由你保存的新文件
- 在所有浏览器中都能用,包括 Firefox 和 Safari:这个工具只做读取
- 在 iPhone、iPad 和 Android 上可以选择单个文件,但无法选择整个文件夹——移动浏览器不允许
- 单个超过 64 MB 的文件会被跳过,并显示跳过的数量
- 混进筛选条件的二进制文件会被当作文本合并,所以类型筛选请如实填写
- 保存的文件是带字节顺序标记的 UTF-8,Excel 打开时中文和重音字母都不会乱码
- 预览显示前几千个字符;保存的文件始终包含全部内容
相关工具
- CSV ⇄ JSON 转换 — 把合并后的文件转成 JSON,或转回来
- 合并 Excel 文件 — 同样的工作,用于 .xlsx 工作簿
- 删除重复行 — 合并之后清理
- 文件编码转换 — 单独修复一个文件的编码
- 在文件中查找文本 — 搜索文件夹而不是合并它