代码 qsv 上手记录:Rust 写的表格数据命令行处理工具

2026-09-05 03:20:29

qsv 上手记录:Rust 写的表格数据命令行处理工具

qsv 是一个处理表格数据的命令行程序,输入格式支持 CSV、Excel、TSV 等常见结构,能完成查询、切片、索引、分析、过滤、转换、排序、验证、连接和格式化等操作。项目用 Rust 编写,遵循 MIT 协议,源码托管在 GitHub

功能与特点

  • 跨平台:在 Linux、macOS、Windows 上均可运行。
  • 性能表现:底层基于 Rust 和 Polars,线程上利用多核并行、索引、缓存和流式处理。处理 GB 级甚至更大文件的场景中,速度通常优于 Python pandas、awk、sed 这类实现。
  • 命令覆盖范围:提供超过 50 个数据处理子命令,包括:
apply cat count datefmt diff edit excel explode fetch foreach
join json luau pivotp select slice sort sqlp to transpose

每个命令可以通过 qsv --help 查看参数和用法,子命令命名与过滤器思路类似,便于按需记忆。

  • 管道组合:命令之间通过标准输入输出衔接,和 shell 管道配合可以当场拼出处理流程。例如下面这行命令统计每列的类型、最大/最小值、标准差等指标,并把结果渲染成对齐表格:
qsv stats data.csv | qsv table
  • 图形界面:qsv pro 版本提供 GUI 操作界面,面向不想直接操作命令行的用户。

在线体验

官方提供了一个不需要装包的在线数据处理环境:

页面上给常用数据操作提供了可视化交互界面,适合先验证功能或处理小规模数据。

下载安装

从官方渠道下载对应系统的可执行文件,将文件所在目录加入系统环境变量 PATH 后,即可在任意位置调用 qsv。安装完成后可通过下面的命令检查环境:

qsv --listInstalled commands (60):
apply       Apply series of transformations to a column
behead      Drop header from CSV file
cat         Concatenate by row or column
count       Count records
datefmt     Format date/datetime strings
dedup       Remove redundant rows
describegpt Infer extended metadata using a LLM
diff        Find the difference between two CSVs
edit        Replace a cell's value specified by row and column
enum        Add a new column enumerating CSV lines
excel       Exports an Excel sheet to a CSV
...

常用的启动方式很简单,比如统计行数:

qsv count data.csv

适用场景

qsv 填补的是轻量文本工具(grep/awk)与通用编程语言(Python/R)之间的空档:既不需要进入交互式环境写脚本,也能直接面对较大的结构化数据跑出结果。对于日志、导出表、批量生成的 CSV 这类需要快速统计和清洗的任务,qsv 可以省掉不少临时脚本的功夫。

复制全文 生成海报 qsv CSV 命令行工具 Rust 数据处理

推荐文章

程序员茄子在线接单