2016-02-18 18 views
0

我想返回我的gzip文件的一列中的唯一項目數。 進行排序,我知道你可以使用像一個正常的文件:在gzip文件的列中查找uniq項目

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

,但是當我在一個gzip文件運行此我得到:

?BC??\ks?ʑ???

是否有可能改變這種格式來查找列中的唯一項目,給定一個gzip文件?

回答

1

好吧,我真的明白了!

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

0

您無法在壓縮文件上運行搜索和排序命令,您必須提取壓縮文件,然後在輸出gzip命令時運行命令。

你可以試試下面的命令

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

這似乎解壓縮文件,正確的,我只是想查看的排序,不會更改文件本身 – amc

+0

GZ文件和打印排序中的文件,這將貓咪的內容是不是?。去修改你的文件 –

0

gzip包自帶的zcat程序,它的工作原理就像cat但它只是對GZ文件。

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

所以我覺得命令實際上是'gzcat fil ename | sort -u -t -k1,1'。 – amc

+0

其實zcat在部門機器上工作! – amc

+0

很高興聽到它:)如果這解決了你的問題,你應該接受答案 –