在gzip文件列

时间:2016-02-18 13:54:04

标签: sorting gzip unique

我想在gzip文件的一列中返回唯一项的数量。 要对普通文件进行排序,我知道您可以使用以下内容:

sort -u -t, -k1,1 filename | wc -l

但是当我在gzip文件上运行时,我得到:

?BC??\ks?ʑ???

在给定gzip文件的情况下,是否可以更改此格式以查找列中的唯一项?

3 个答案:

答案 0 :(得分:2)

好的,所以我真的想通了!

gzcat vcf_del.vcf.gz | cut -f 2 | sort | uniq | wc -l(和zcat也有效)

然后,如果您不想要文件的某些部分(例如在VCF文件中有一系列带有“#”的行),您可以简单地删除它们:

gzcat vcf_del.vcf.gz | awk '!/^#/{print $0}' | cut -f 2 | sort | uniq | wc -l

答案 1 :(得分:1)

gzip程序包附带zcat程序,其工作方式与cat类似,但适用于gz文件。

zcat filename | sort -u -t -k1,1

答案 2 :(得分:0)

您无法在压缩文件上运行搜索和排序命令,您必须提取压缩文件,然后在输出gzip命令时运行命令。

您可以尝试以下命令

gunzip -c filename | sort -u -t -k1,1