Repolode
medialab

medialab/xan

一款用 Rust 编写的命令行工具,可在终端直接预览、过滤、聚合、连接和转换 CSV/TSV 文件。

可替代:Microsoft Excel

Star
4,540
Fork
94
未关闭 Issue
127
最近提交
19小时前

这是什么?

xan 是一款在命令行中处理 CSV 文件的工具,提供大量可组合的子命令,用于预览、搜索、过滤、切片、排序、去重、聚合和连接表格数据,并可串联成管道使用。

它使用 Rust 编写,底层基于 SIMD CSV 解析器,部分计算通过多线程并行执行,可处理从 GB 到 TB 级别的文件。项目还内置了一套面向 CSV 行的表达式语言,供 filter、map、transform、agg、groupby 等命令使用,并支持与 JSON、NDJSON、Excel、Parquet 等格式互相转换。

该项目源自 xsv 的分支,后由 SciencesPo médialab 大幅重写,功能偏向网页数据采集与社会科学分析,包括词汇统计、图论工具和 HTML 抓取。此外,它还提供终端表格预览、直方图、散点图和热力图,便于快速探索数据。

核心功能

  • 01在 shell 中预览、搜索、过滤、切片、排序和去重 CSV 文件。
  • 02借助自定义表达式语言进行聚合与分组计算。
  • 03通过 join、merge、pivot、unpivot 等命令连接和重塑表格。
  • 04在 CSV 与 JSON、NDJSON、Excel、Parquet 等格式之间互相转换。
  • 05支持读取 gzip、zstd 压缩文件,以及 VCF、SAM、BED 等生物信息学格式。
  • 06在终端中绘制直方图、散点图和热力图。

适用场景

  • 不借助电子表格,快速查看或过滤大型 CSV 导出文件。
  • 搭建可重复运行的 shell 管道,用于清洗和聚合表格数据。
  • 对问卷或网页采集数据计算频数表和描述性统计。
  • 在脚本中实现 CSV 与 JSON、Excel 等格式之间的转换。

快速上手

  1. 1

    使用 Cargo 安装 xan

    cargo install xan --locked
  2. 2

    下载示例语料

    curl -LO https://github.com/medialab/corpora/raw/master/polarisation/medias.csv
  3. 3

    在终端中预览该文件

    xan view medias.csv

标签

常见问题

xan 是什么?
一款用 Rust 编写的命令行工具,可在终端直接预览、过滤、聚合、连接和转换 CSV/TSV 文件。 xan 是一款在命令行中处理 CSV 文件的工具,提供大量可组合的子命令,用于预览、搜索、过滤、切片、排序、去重、聚合和连接表格数据,并可串联成管道使用。
xan 可以免费使用吗?用的什么许可证?
xan 以 Unlicense 许可证开源。用于商业产品前,请先确认许可证条款。
xan 还在维护吗?
活跃维护中。xan 最近一次提交是在 2026年10月20日。
xan 适合用来做什么?
不借助电子表格,快速查看或过滤大型 CSV 导出文件。 搭建可重复运行的 shell 管道,用于清洗和聚合表格数据。 对问卷或网页采集数据计算频数表和描述性统计。 在脚本中实现 CSV 与 JSON、Excel 等格式之间的转换。
xan 怎么安装和运行?
使用 Cargo 安装 xan: cargo install xan --locked 下载示例语料: curl -LO https://github.com/medialab/corpora/raw/master/polarisation/medias.csv 在终端中预览该文件: xan view medias.csv
在哪里获取 xan?
源代码和安装说明在 GitHub 上:https://github.com/medialab/xan

概要由 AI 根据项目 README 生成;GitHub 数据每日更新。

相关项目