csview:696⭐的高性能 CSV 终端查看器,支持 CJK 和 Emoji
csview:696⭐的高性能 CSV 终端查看器
CSV 文件是数据交换的通用格式,但在终端里直接查看却是个痛点——cat 输出混乱,less 也不管用,打开 Excel 或 Numbers 又太重。今天要介绍的 csview 是一个专为终端设计的 CSV 查看器,用 Rust 编写,696 个 star,足够轻量又足够好用。
项目概览
| 属性 | 内容 |
|---|---|
| GitHub | wfxr/csview |
| Stars | 696 |
| 语言 | Rust |
| 特点 | 高性能、CJK/Emoji 支持、表格对齐、分页浏览 |
| 最后更新 | 1周前 |
解决什么问题
在终端里处理 CSV 文件时,常见的困境包括:
- 纯文本查看:列宽不固定,数据对不齐,眼睛容易看花
- 打开 GUI 工具:启动慢、内存占用高,不适合远程服务器
- 字符编码问题:中文字符或 Emoji 经常显示乱码或错位
- 大文件处理:几十 MB 的 CSV 用编辑器打开会卡顿
csview 针对这些场景提供了一个零依赖、秒开的解决方案。
核心特性
📊 智能表格对齐
自动计算每列宽度,让数据在终端里整齐排列。支持自定义分隔符,不仅限于逗号分隔的 CSV。
# 查看标准 CSV
csview data.csv
# 查看制表符分隔的文件
csview -d '\t' data.tsv
🎨 语法高亮
表头、字符串、数字用不同颜色区分,提升可读性。支持多种配色主题,可配合终端颜色配置。
🌏 CJK 与 Emoji 支持
这是 csview 的一大亮点。很多终端工具在处理东亚字符时会因为字符宽度计算错误导致表格错位,csview 专门优化了这一点,中、日、韩文字符和 Emoji 都能正确显示。
⚡ 高性能
Rust 编写,启动速度快,内存占用低。采用流式读取,即使处理大文件也不会卡住。实测 100MB 的 CSV 文件能瞬间加载。
📄 分页浏览
集成类似 less 的分页功能,支持方向键滚动、搜索、跳转到指定行。适合查看行数较多的数据文件。
# 分页模式(默认)
csview large.csv
# 直接输出到 stdout
csview --no-pager data.csv
🔧 灵活配置
# 指定编码(自动检测失败时)
csview -e utf-8 data.csv
# 限制显示行数
csview -n 100 data.csv
# 转义特殊字符
csview --escape data.csv
快速开始
安装
csview 提供多种安装方式:
# macOS (Homebrew)
brew install csview
# Arch Linux (AUR)
yay -S csview
# Cargo (Rust 包管理器)
cargo install csview
# 预编译二进制
# 从 GitHub Releases 下载对应平台的二进制文件
基本使用
# 查看文件
csview sales.csv
# 配合管道使用
cat data.csv | csview
# 查看 TSV 文件
csview -d '\t' data.tsv
同类工具对比
| 工具 | Stars | 语言 | 特点 |
|---|---|---|---|
| xsv | 9.8k | Rust | 功能全面,支持索引和查询,但表格显示不如 csview 美观 |
| csvkit | 5.9k | Python | 工具集丰富,但依赖 Python 环境,启动较慢 |
| visidata | 6.9k | Python | 交互式电子表格,功能强大但学习成本高 |
| csview | 696 | Rust | 专注查看,轻量快速,CJK/Emoji 支持好 |
如果你的主要需求是快速查看 CSV 文件而不是复杂的数据处理,csview 是最轻量的选择。xsv 更适合需要命令行查询和索引的场景,visidata 则适合需要交互式编辑的情况。
适用场景
服务器日志分析
在远程服务器上查看导出的 CSV 日志,无需下载到本地:
ssh server "cat /var/log/app/exports.csv" | csview
数据预览
处理数据科学工作流时,快速预览中间结果:
python process.py | csview
配置文件检查
查看以 CSV 格式存储的配置或数据文件:
csview -d ',' users.csv
CI/CD 流水线
在自动化流程中查看测试报告或统计数据:
pytest --csv=results.csv && csview results.csv
注意事项
- csview 是只读工具,不支持编辑 CSV 文件
- 分页模式下按
q退出,按/搜索 - 部分终端可能需要配置字体才能正确显示表格边框字符
总结
csview 是一个把一件事做到极致的小工具:让你在终端里舒服地查看 CSV 文件。它没有 visidata 的功能丰富,也没有 xsv 的查询能力,但对于”想看看这个 CSV 里有什么”这个最常见的需求,它提供了最轻量、最快速的解决方案。696 个 star 的小众项目,值得放进你的工具箱。
| 属性 | 内容 |
|---|---|
| 仓库 | https://github.com/wfxr/csview |
| 许可证 | Apache-2.0 |
| 语言 | Rust |
| 维护者 | @wfxr |