Miller
面向 CSV、TSV、JSON、JSON Lines 等结构化文本的命令行处理工具,可按字段筛选、转换、排序、聚合和格式化流式数据。
Miller 适合处理什么数据
Miller 的命令名是 mlr,可按字段处理 CSV、TSV、JSON、JSON Lines 和位置索引文本。它能添加或删除字段、筛选记录、排序、统计聚合、漂亮打印和转换格式,适合日志清洗、数据预处理、数据库导入导出和一次性命令行分析。
流式处理与内存边界
许多操作一次只需保留当前记录,因此能处理大于可用内存的文件;排序、逆序和部分聚合必须保留更多状态,数据量或字段基数很高时仍可能消耗大量内存。正式运行前应先用代表性样本估算,并保留执行日志和输出空间。
格式、类型与源文件保护
CSV 的引号、换行、编码和分隔符会直接影响解析,编号、邮编和长数字也可能被错误当成数值。每次转换都应记录输入格式,输出到新文件,再核对行数、字段、空值和关键统计值。Miller 本身的流式能力不能防止 shell 重定向覆盖源文件。
归档与维护记录
本页于 2026-08-06 根据 Miller 6.20.2 的多格式、字段处理、流式计算和格式转换能力复核,并将许可证修正为 BSD-2-Clause。归档文件为 miller-6.20.2-windows-amd64.zip,适用于 Windows x64,大小为 5.73 MB。
保存到自己的网盘
打开网盘后可直接获取,也可以先保存到自己的网盘,方便换设备继续使用。
夸克网盘(无需提取码)
推荐将「Miller」保存到该网盘
百度网盘
将「Miller」保存到该网盘
Miller 结构化文本筛选与格式转换教程
先用一份无敏感信息的小型 CSV 建立字段与格式基线,所有结果输出到新文件;确认行数、列名和数据类型后再处理正式数据。
安装前准备
- 准备包含表头的测试 CSV,并记录原始行数、列名、编码和分隔符。
- 在 Windows x64 终端中建立独立工作目录,不直接操作唯一源文件。
- 明确输入与输出格式以及空值、日期、数字和前导零的保留要求。
安装步骤
- 01
解压 Windows 归档
核对版本、文件名和架构后解压到固定目录,确认其中的 mlr 可执行文件未被重复嵌套或重命名。
- 02
查看版本与帮助
在终端运行版本和帮助命令,确认可执行文件为 6.20.2,并查看当前版本支持的输入输出格式与动词。
- 03
建立只读测试副本
复制一份小型 CSV 到工作目录,保留原件的行数、文件大小和校验值,后续结果使用不同文件名。
快速上手
- 01
预览字段记录
明确指定 CSV 输入格式并用 head 查看前几条记录,确认表头、分隔符和字符显示正常后再组合其他操作。
- 02
筛选并计算新字段
先在少量数据上使用 cut、filter 或 put,逐步检查字段名、条件和表达式结果,避免一次拼接过长命令难以定位错误。
- 03
转换格式并核对
将结果输出为新的 CSV、TSV 或 JSON 文件,重新读取并比较行数、字段顺序、空值和关键汇总值。
使用建议
- 明确指定输入和输出格式,扩展名、分隔符与实际内容不一致时不要依赖猜测。
- 排序、逆序及部分统计聚合不再是纯逐行处理,大文件应先用样本估算内存和耗时。
- 命令重定向和批处理脚本可能覆盖文件,输入与输出必须使用不同路径并保留可恢复副本。
故障排查与卸载方法
中文、引号或换行解析异常怎么办?
检查文本编码、CSV 引号规则、分隔符和行尾,先用最小样本复现;不要通过简单替换逗号修复包含引号或嵌入换行的字段。
转换后数字前导零消失怎么办?
将邮编、编号等字段按字符串处理,并在写出和目标软件导入时明确列类型;不要把外观相似的标识符当成可计算数字。
- 移除可执行目录与脚本引用确认结果文件已归档并检查 PATH、批处理或自动任务不再引用 mlr 后,删除解压目录即可。
常见问题
Miller 与 awk、sed 或 jq 有什么区别?
Miller 面向带字段名的记录,可直接处理 CSV、TSV、JSON、JSON Lines 等格式,并在同一命令链中完成筛选、计算、排序和转换;它不是电子表格界面,也不替代完整数据库。
Miller 可以处理大于内存的文件吗?
多数逐记录操作采用流式处理,可以处理很大的输入;但排序、逆序和部分统计操作必须保留更多数据,仍会受内存、磁盘和字段基数影响。
使用 Miller 会修改原始文件吗?
Miller 通常把结果写到标准输出,是否覆盖文件取决于外部重定向或脚本。初次使用应输出到新文件并验证,避免把输入和输出指向同一路径。
下载时需要提取码吗?
夸克网盘无需提取码;百度网盘所需的四位提取码会直接显示在下载入口旁。