【shell笔记>命令|实战】zcat与awk简单连用

有些数据文件太大,一般采用gzip压缩,比如我现在处理的ICGC数据。下载1到2G,一解压感觉要炸。其实文件里面的信息很多,我们需要的往往只有几个域而已。这时候我们可以通过zcatawk连用省去中间的解压过程直接提取出我们想要的域(类似R中数据框的列向量)。

比如下面我提取出压缩文件中的前两个域并以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

我们还可以通过FS来指定输入的分隔符。

zcat simple_somatic_mutation.open.tsv.gz | head | awk 'BEGIN{FS="\t";OFS="\t";} {print $1,$2}'

这样awk会以tab键区分输入文件的域,不然默认用空格键。

zcat

awk

你可能感兴趣的:(【shell笔记>命令|实战】zcat与awk简单连用)