有些數(shù)據(jù)文件太大华弓,一般采用gzip壓縮,比如我現(xiàn)在處理的ICGC數(shù)據(jù)滑废。下載1到2G蝗肪,一解壓感覺(jué)要炸。其實(shí)文件里面的信息很多蠕趁,我們需要的往往只有幾個(gè)域而已薛闪。這時(shí)候我們可以通過(guò)zcat
與awk
連用省去中間的解壓過(guò)程直接提取出我們想要的域(類似R中數(shù)據(jù)框的列向量)。
比如下面我提取出壓縮文件中的前兩個(gè)域并以tab分隔輸出俺陋。
wangshx@wangshx-KVM:~/projects/Mut-Signature/dataset$ zcat simple_somatic_mutation.open.tsv.gz | head | awk 'BEGIN{OFS="\t";} {print $1,$2}'
icgc_mutation_id icgc_donor_id
MU28469596 DO50633
MU28469596 DO50633
MU28469596 DO50633
MU28469596 DO50633
MU28469596 DO50633
MU28469596 DO50633
MU28469596 DO50633
MU28469596 DO50633
MU28469596 DO50633
我們還可以通過(guò)FS
來(lái)指定輸入的分隔符豁延。
zcat simple_somatic_mutation.open.tsv.gz | head | awk 'BEGIN{FS="\t";OFS="\t";} {print $1,$2}'
這樣awk
會(huì)以tab
鍵區(qū)分輸入文件的域,不然默認(rèn)用空格鍵腊状。