你好,欢迎进入江苏优软数字科技有限公司官网!

诚信、勤奋、创新、卓越

友好定价、专业客服支持、正版软件一站式服务提供

13262879759

工作日:9:00-22:00

sublime text replace CSV/TSV格式应用广泛,现有处理工具却各有局限,csvtk应运而生

发布时间:2025-06-12

浏览次数:0

生物信息领域的FASTA/Q格式相类似,CSV/TSV格式在计算机科学、数据分析和生物信息学中扮演着基础角色,其应用范围极为广泛。此类格式通常由以下处理软件进行操作:

以微软Excel为代表的电子表格软件

++/等文本编辑

sed/awk/cut等Shell命令

各种编程语言的数据处理库。

尽管电子表格软件以及文本编辑器功能卓越,但它们对鼠标的依赖性较强,并不适宜进行大规模的数据处理。

sed、awk、cut等Shell命令通常适用于处理不带标题行的通用表格数据,它们并不适合用于包含标题行的CSV文件格式。

为了一个小操作写/R脚本也有点小题大作,且难以复用。

在csvtk开发之前,市面上已有的工具大多是编程语言编写的,比如用Rust编写的xsv和用C语言编写的工具,它们各自都有其独特的优势和不足。在我完成csvtk开发并着手投稿论文时sublime text replace,恰好有充裕的时间,于是我萌生了再创造一个新工具的想法。

因此,我选择开发一款命令行程序,用于执行针对CSV/TSV文件格式的常规任务,这款工具便是csvtk。

介绍

基本信息

特性

功能

在着手开发csvtk的前两三年里,我已成功编写了数个可重复使用的Perl脚本。

(https://.com//)

,包括、、、,,。

[[]49]

到目前为止sublime text replace,csvtk已有27个子命令,分为以下几大类:

格式转化

集合操作

编辑

排序

绘图

其它

使用

输入数据要求每行的列数一致,空行也会报错

csvtk默认输入数据含有标题行,如没有请开启全局参数-H

csvtk工具预设接收的文件类型为CSV格式,若输入的是TSV格式的数据,需记得启用全局参数中的-t选项。

输入数据列名最好唯一无重复

如果TSV中存在双引号"",请开启全局参数-l

csvtk软件将#开头的行视为注释,若数据表的表头行包含#,用户需通过全局参数-C来设定一个不常使用的字符(例如$)来替代。

例子

请查阅使用手册中的示例,以获取更多相关例子,手册地址为http://..me/csvtk/usage/。

示例数据

 $ cat names.csv
身份标识,名,姓,用户名
 11,"Rob","Pike",rob
 2,Ken,Thompson,ken
 4,"Robert","Griesemer","gri"
 1,"Robert","Thompson","abc"
 NA,"Robert","Abel","123"

增强可读性

在命令行中,输入以下指令:对names.csv文件执行cat操作,然后通过管道将其输出至csvtk工具,并使用pretty选项进行美化展示。
身份标识,姓名首字母,姓氏,用户名
Rob Pike,这位才华横溢的编程大师,他的贡献和影响在计算机科学领域举足轻重。他的工作不仅仅局限于编程语言的设计,更在于他对于编程哲学的深刻洞察。在他的引领下,编程世界发生了翻天覆地的变化,无数开发者受益匪浅。
Ken Thompson,这位人物,他的名字,在业界,广为人知。
Robert Griesemer 强调了禁止对特定内容进行修改的重要性,并指出这一规定适用于所有专有名词。
Robert Thompson,此人禁止对abc进行任何形式的修改。
Robert Abel,编号为123,被禁止对专有名词进行修改。

转为

将names.csv文件的内容通过cat命令输出,随后利用csvtk工具将CSV格式转换为Markdown格式。
身份标识符,姓名首字母,姓氏,用户名
该行为不得擅自变更,必须严格遵守规定,不得随意更改条款,任何擅自修改均属违规,必须保持原文的完整性,不得擅自添加或删除内容。
 11 |Rob       |Pike     |rob
 2  |Ken       |Thompson |ken
 4  |Robert    |Griesemer|gri
 1  |Robert    |Thompson |abc
 NA |Robert    |Abel     |123

效果

11

Rob

Pike

rob

Ken

ken

gri

abc

NA

Abel

123

用列或列名来选择指定列,可改变列的顺序

执行以下命令,将names.csv文件中的第三列和第一列内容分别提取出来,并对输出结果进行美化展示:使用管道将cat命令的输出传递给csvtk cut命令,指定提取第三列和第一列的数据,再通过管道将结果传递给csvtk pretty命令进行处理。
执行命令以从names.csv文件中提取最后一名和ID信息,然后通过csvtk工具进行切割和美化输出。
 last_name   id
 Pike        11
 Thompson    2
 Griesemer   4
 Thompson    1
 Abel        NA

用通配符选择多列

csvtk命令行工具_CSV处理工具_sublime text replace

执行命令,将names.csv文件中的"name"和"id"字段提取出来,然后使用csvtk工具进行格式化美化展示。
姓名首字母,姓氏全称,用户名,身份标识号
罗布·派克,他犯下了11起抢劫罪行。
Ken Thompson,他坚决反对对专业知识的篡改。
Robert Griesemer在文中明确指出,……
Robert Thompson,他的身份信息为abc,编号为1。
罗伯特·亚伯,编号123,信息未公开。

取消第2、3列数据(具体做法是选取一定区间,其中-3位于区间的起始位置,而-2则位于区间的末端)。

执行命令以从names.csv文件中提取第二列和第三列的数据,然后通过csvtk工具对提取出的数据进行格式化美化显示。
执行命令以从names.csv文件中提取第三列至第二列的数据,然后通过csvtk工具进行格式化美化输出。
执行命令,从names.csv文件中提取出首名和姓氏字段,并通过csvtk工具进行切割处理,最后以美化格式输出。
 id   username
 11   rob
 2    ken
 4    gri
 1    abc
 NA   123

按指定列搜索,默认精确匹配

执行命令以过滤名为 "names.csv" 的文件中的特定行,筛选出包含 "id" 字段的记录,然后对筛选结果进行美化显示。
 id   first_name   last_name   username
 1    Robert       Thompson    abc

模糊搜索(正则表达式)

执行命令以筛选出names.csv文件中id列第一列的记录,然后使用csvtk工具进行正则表达式匹配,最后以美化格式输出结果。
 id   first_name   last_name   username
 11   Rob          Pike        rob
 1    Robert       Thompson    abc

如有侵权请联系删除!

13262879759

微信二维码