这个项目能做什么

Miller 是一款命令行数据处理工具,用于处理按名称索引的键值对数据。它不像经典 Unix 工具那样按位置计数字段,而是允许你按名称引用字段,支持 CSV、TSV、JSON、JSON Lines 以及按位置索引的输入等格式。 README 中描述的核心能力: - 多用途数据处理:数据清洗、数据归约、统计报告、DevOps 与系统管理、日志文件处理、格式转换,以及数据库查询的后处理。 - 命名字段操作:基于现有字段计算并添加新字段、删除字段、排序、统计聚合以及美化打印,全部可即时完成。 - 格式感知:例如,CSV 的 sort 和 tac 会保持表头行位于最前;并提供受支持格式之间的转换。 - 流式设计:大多数操作一次只需在内存中保留一条记录,因此在功能允许的情况下可以处理大于可用内存的文件,并且可用于 tail -f 场景。需要更深保留的操作(sort、tac、stats1)只保留所需的数据量。 - 记录异构性:具有不同模式(字段名)的记录可以交错出现,这超越了经典 Unix 工具。 - 管道友好:可与 Unix 工具集互操作。 - 可补充 R 和 pandas 等数据分析工具,用于清洗和准备数据;也可补充 SQL 数据库,用于客户端切片、切块和重新格式化。 - 使用可移植的 Go 编写,零运行时依赖;单个二进制文件即可复制到另一台机器。 可通过许多包管理器安装,包括 Linux 上的 apt/yum/snap、macOS 上的 Homebrew 和 MacPorts,以及 Windows 上的 Chocolatey、WinGet 和 Scoop。支持使用 make(make、make check、make install)或直接使用 Go 命令从源码构建。该项目采用 BSD-2-Clause 许可证,并提供大量文档、教程和社区讨论渠道。