#csv #viewer #pager #tool #markdown-tables #command-line-tool

app csview

一个支持 CJK/emoji 的高性能 csv 查看

21 个版本 (12 个稳定版)

1.3.3 2024年7月8日
1.2.4 2024年3月4日
1.2.2 2022年10月9日
1.1.0 2022年7月2日
0.3.5 2020年9月23日

#16 in 命令行工具

Download history 453/week @ 2024-04-28 40/week @ 2024-05-05 18/week @ 2024-05-12 7/week @ 2024-05-19 12/week @ 2024-05-26 25/week @ 2024-06-02 7/week @ 2024-06-09 4/week @ 2024-06-16 168/week @ 2024-07-07 31/week @ 2024-07-14 21/week @ 2024-07-21 111/week @ 2024-07-28 19/week @ 2024-08-04 2/week @ 2024-08-11

每月下载量 155

MIT/Apache

39KB
719

📠 csview

一个支持 CJK/emoji 的高性能 csv 查看。

CICD License Version Platform

特性

  • 小巧且 快速(见下方的 基准测试)。
  • 内存高效。
  • 正确对齐 CJK 和 emoji 字符。
  • 支持 tsv 和自定义分隔符。
  • 支持不同的样式,包括 markdown 表格。

用法

$ cat example.csv
Year,Make,Model,Description,Price
1997,Ford,E350,"ac, abs, moon",3000.00
1999,Chevy,"Venture ""Extended Edition""","",4900.00
1999,Chevy,"Venture ""Extended Edition, Large""",,5000.00
1996,Jeep,Grand Cherokee,"MUST SELL! air, moon roof",4799.00

$ csview example.csv
┌──────┬───────┬───────────────────────────────────┬───────────────────────────┬─────────┐
 Year │ Make  │               Model               │        Description        │  Price  │
├──────┼───────┼───────────────────────────────────┼───────────────────────────┼─────────┤
 1997 │ Ford  │ E350                              │ ac, abs, moon             │ 3000.00 │
 1999 │ Chevy │ Venture "Extended Edition"        │                           │ 4900.00 │
 1999 │ Chevy │ Venture "Extended Edition, Large" │                           │ 5000.00 │
 1996 │ Jeep  │ Grand Cherokee                    │ MUST SELL! air, moon roof │ 4799.00 │
└──────┴───────┴───────────────────────────────────┴───────────────────────────┴─────────┘

$ head /etc/passwd | csview -H -d:
┌────────────────────────┬───┬───────┬───────┬────────────────────────────┬─────────────────┐
 root                   │ x │ 0     │ 0     │                            │ /root           │
 bin                    │ x │ 1     │ 1     │                            │ /               │
 daemon                 │ x │ 2     │ 2     │                            │ /               │
 mail                   │ x │ 8     │ 12    │                            │ /var/spool/mail │
 ftp                    │ x │ 14    │ 11    │                            │ /srv/ftp        │
 http                   │ x │ 33    │ 33    │                            │ /srv/http       │
 nobody                 │ x │ 65534 │ 65534 │ Nobody                     │ /               │
 dbus                   │ x │ 81    │ 81    │ System Message Bus         │ /               │
 systemd-journal-remote │ x │ 981   │ 981   │ systemd Journal Remote     │ /               │
 systemd-network        │ x │ 980   │ 980   │ systemd Network Management │ /               │
└────────────────────────┴───┴───────┴───────┴────────────────────────────┴─────────────────┘

运行 csview --help 以获取详细信息。

安装

在 Arch Linux 上

csview 可在 Arch 用户仓库中使用。要安装,请从 AUR 安装。

yay -S csview

在 macOS 上

您可以使用 Homebrew 安装 csview

brew install csview

在 NetBSD 上

csview 可从主 pkgsrc 仓库获取。要安装,只需在支持的平台上运行

pkgin install csview

或,如果您喜欢从源码构建,可以使用 pkgsrc 在任何支持的平台上进行。

cd /usr/pkgsrc/textproc/csview
make install

在 Windows 上

您可以使用 Scoop 安装 csview

scoop install csview

从二进制文件

为各种架构预构建的 csview 版本可在 Github 发布页面 获取。

请注意,如果您遇到依赖关系相关错误,可以尝试使用(静态链接的)musl 版本。

从源码

csview 也在 crates.io 上发布。如果您已安装最新的 Rust 工具链,可以使用 cargo 从源码安装它。

cargo install --locked csview

如果您需要最新版本,请克隆此仓库,并运行 cargo build --release

基准测试

工具 命令 平均时间 最短时间 内存
xsv xsv table small.csv 2.0毫秒 1.8毫秒 3.9MB
csview csview small.csv 0.3毫秒 0.1毫秒 2.4MB
-s, -t small.csv 1.3毫秒 1.1毫秒 2.4MB
csvlook csvlook small.csv 148.1毫秒 142.4毫秒 27.3MB
工具 命令 平均时间 最短时间 内存
xsv xsv table medium.csv 0.031秒 0.029秒 4.4MB
csview csview medium.csv 0.017秒 0.016秒 2.8MB
-s, -t small.csv 0.052秒 0.050秒 9.9MB
csvlook csvlook medium.csv 2.664秒 2.617秒 46.8MB
  • large.csv(1,000,000行,10列,61M字节,通过连接medium.csv 100次生成)
工具 命令 平均时间 最短时间 内存
xsv xsv table large.csv 2.912秒 2.820秒 4.4MB
csview csview large.csv 1.686秒 1.665秒 2.8MB
-s, -t small.csv 5.777秒 5.759秒 767.6MB
csvlook csvlook large.csv 20.665秒 20.549秒 1105.7MB

常见问题解答(F.A.Q.)


我们已经有xsv了,为什么还要为其贡献但建立一个新的工具呢?

xsv非常棒。但它的目的是分析和操作csv数据。 csview是为格式化和查看而设计的。参见:xsv/issues/156


该文件可能使用非UTF8编码。您可以使用file命令检查文件编码

$ file -i a.csv
a.csv: application/csv; charset=iso-8859-1

然后将它转换为utf8

$ iconv -f iso-8859-1 -t UTF8//TRANSLIT a.csv -o b.csv
$ csview b.csv

或者就地转换

$ iconv -f iso-8859-1 -t UTF8//TRANSLIT a.csv | csview

致谢

许可

csview在MIT许可和Apache许可2.0的条款下分发。

有关许可详情,请参阅LICENSE-APACHELICENSE-MIT文件。

依赖关系

~5–15MB
~180K SLoC