x-cmd pkg | xsv - CSV 和 TSV 文件处理器

2024-01-08 19:06:48

简介

xsv 是一个用于索引、切片、分析、拆分和连接 CSV 和 TSV 文件的命令行程序,由 Andrew Gallant 使用 Rust 语言开发,首次发布于 2014 年 11月。

xsv 专为效率而生,并提供很多适合表格数据批处理场景的功能:

  1. 支持使用正则表达式或 类 SQL 语句进行筛选和排序。
  2. 提供对 CSV 数据文件统计分析的功能,例如统计行数、列数、频率
  3. 提供对 CSV 数据文件拼接和拆分的功能,例如将 CSV 数据文件拆分为多个文件、联接 CSV 多个文件

首次用户

  1. 使用 x xsv 即可自动下载并使用

    • 在终端运行 eval "$(curl https://get.x-cmd.com)" 即可完成 x 命令安装, 详情参考 x-cmd 官网
  2. x-cmd 提供1分钟教程,其中包含了 xsv 命令常用功能的 demo 示例,可以帮你快速上手 xsv 。

  3. 使用案例:

    xsv-1min-cn

    # 显示 CSV 的表头内容
    x xsv headers path/data.csv
    
    # 获取 CSV 文件的行数
    x xsv count path/data.csv
    
    # 使用弹性制表符格式化显示
    x xsv table path/data.csv
    
    # 对 CSV 数据进行 select 操作,如对 ascii 码表进行 select 操作,只显示八进制编码、缩写和相应的描述
    x ascii | x xsv select Oct,Acronym,Description
    
    # 排序
    x ascii | x xsv sort -s Acronym
    

技术特点

  1. 性能优秀
    1. xsv 采用 Rust 编写,作者在实现中非常注意优化,因此 xsv 的性能极其优秀,可以胜任大数据场景。
    2. 在8核16进程,select 的数据吞吐量能够到达325MB/s
    3. benchmark
  2. 常用功能足够简单,同时为了极致的性能,性能方面的选择会暴露在命令项选项当中。
  3. 采用 CSV 存储 GB 级别数据的讨论
    1. 作者很有趣,对该项目的使用场景进行了说明。反过来,也能知道作者使用xsv所处理的数据量都是非常大的。对于一般场景,其性能和可靠性是绰绰有余的。
    2. 当数据足够大(例如上 GB),数据库是更好的选择,这一点是合理的。而 sqlite3 非常适合这类场景。
    3. 但是,对于冷数据运维场景,或者数据本身高度冗余(以压缩方式存储),GB 级别的数据输入是存在的。而配合日益强大的 CPU 计算,xsv 的存在给了我们更多的选择。

进一步阅读

  • xsv 源代码 - xsv 项目的源代码托管在 GitHub,你可以在这里找到最新版本的 xsv 和参与社区贡献。
  • xsv 使用示例 - 该文章为 xsv 项目的 README.md 文档,其中提供 xsv 常用功能的使用示例。
  • kandi: xsv - 该网站从社区支持、项目质量、安全、License、Reuse 等方面对 xsv 项目进行了评估。

X-CMD 官网

文章来源:https://blog.csdn.net/edwinjhlee/article/details/135458894
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。