【发布时间】:2016-02-18 13:54:03
【问题描述】:
我想在我的 gzip 文件的一列中返回唯一项目的数量。 要对普通文件进行排序,我知道您可以使用以下内容:
sort -u -t, -k1,1 filename | wc -l
但是当我在 gzip 文件上运行它时,我得到:
?BC??\ks?ʑ???
如果给定一个 gzip 文件,是否可以更改此格式以查找列中的唯一项目?
【问题讨论】:
我想在我的 gzip 文件的一列中返回唯一项目的数量。 要对普通文件进行排序,我知道您可以使用以下内容:
sort -u -t, -k1,1 filename | wc -l
但是当我在 gzip 文件上运行它时,我得到:
?BC??\ks?ʑ???
如果给定一个 gzip 文件,是否可以更改此格式以查找列中的唯一项目?
【问题讨论】:
好吧,我真的想通了!
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
【讨论】:
gzip 程序包附带 zcat 程序,它的工作方式与 cat 类似,但适用于 gz 文件。
zcat filename | sort -u -t -k1,1
【讨论】:
gzcat filename | sort -u -t -k1,1。
你不能在压缩文件上运行搜索和排序命令,你必须提取压缩文件然后在 gzip 命令的输出上运行你的命令。
你可以试试下面的命令
gunzip -c filename | sort -u -t -k1,1
【讨论】: