前提是gz文件超大,如上百G,肯定不能直接解壓來做。
不解壓情況下獲取gz超大文件的前/后幾行?
gzip -cd test.gz |head -100
gzip -cd test.gz |tail -100
Perl讀入gz文件操作?
use PerlIO::gzip;
open IN,"<:gzip",$vcfgz||die"$!";
除了常規的Perl模塊安裝,還可用conda來直接安裝PerlIO::gzip模塊。
conda install -c bioconda perl-perlio-gzip
#或
conda install -c bioconda/label/cf201901 perl-perlio-gzip
不能直接通過wc -l 來統計gz文件的行數
平時習慣了直接用wc -l file
命令來查看文件行數,但用在gz等壓縮文件中就不行了。雖然它不會報錯,也會返回統計行數,但返回的實際是壓縮文件的行數(往往比源文件多很多),而非源文件。給一個示例就能明白:
查看壓縮文件的命令,只有zcat、less等少數幾個命令,如果要進行其他操作,不要偷懶,先用它們打開文件再用管道操作。