csvtk是shen wei的作品,seqkit也是他写的。
csvtk githubs
安装conda install -c bioconda csvtk
或者从https://github.com/shenwei356/csvtk/releases 下载二进制文件。
支持Linux,mac,windows.
相当于shell的sed,grep,awk,cut,uniq,sort,join的合集。优点是支持多线程,支持读写gz压缩文件。
一般默认输出到标准输出流,可以配合管道符使用
全局命令参数
默认的输入和输出文件都是csv格式。 参数如果需要使用引号, 一定要用单引号,不要用双引号。 可以直接读写gz压缩文件 -t 输入文件分割符为tab -T 输出文件分隔符为tab -j 32 指定32个cpu运行,默认16. -o output.gz 指定输出文件,后缀是gz,则直接输出gz压缩文件。
常用参数
-csvtk xlsx2csv
csvtk xlsx2csv -a test.xlsx #查看有几个sheet
csvtk xlsx2csv -i 2 -t test.xlsx #提取第2个sheet,输出格式为tab分隔符
csvtk xlsx2csv -i 2 test.xlsx #提取第2个sheet,输出格式为csv格式
- csvtk nrow
csvtk nrow test.csv # 查看csv文件的行数
csvtk nrow -t test.txt # 查看tab分割符的文件的行数
-csvtk ncol (用法和nrow一样)
csvtk xlsx2csv -i 3 test.xlsx|csvtk ncol
#联合使用,从xlsx里获取指定sheet的列数
-csvtk filter2
csvtk filter2 -f '$5<0.05' test.csv
或者csvtk filter2 -f '$padj<0.05' test.csv
#可以使用$5
指定第5列过滤或者$padj
直接使用列名过滤。
csvtk filter2 -f '$5>$4' test.csv
#过滤第5列大于第4列的
csvtk filter2 -t -f '$5>0.03' test.tab
过滤tab分割符的第5列大于0.03的
-csv2xlsx
csvtk csv2xlsx test.csv
#会直接输出文件test.csv.xlsx
csv2
-del-header
csvtk del-header test.csv
#删除头部
-add-header
csvtk add-header -n 'genename,count,foldchange,pval,padj' test.csv
#添加新的文件头
-rename
csvtk rename -f 1,2,3,4,5 -n 'gene,count,foldchange,pvalue,padj' test.csv
#直接重命名指定列的列名
csvtk rename -f 3 -n 'log2Foldchange' test.csv
#指定列名重命名
-csvtk transpose
csvtk transpose test.csv
#转置