我怎样才能改变以下命令压缩文件?
awk 'FNR==NR { array[$1,$2]=$8; next } ($1,$2) in array { print $0 ";" array[$1,$2] }' input1.vcf input2.vcf
该命令与正常文件做工精细。 我需要改变命令压缩文件。
我怎样才能改变以下命令压缩文件?
awk 'FNR==NR { array[$1,$2]=$8; next } ($1,$2) in array { print $0 ";" array[$1,$2] }' input1.vcf input2.vcf
该命令与正常文件做工精细。 我需要改变命令压缩文件。
你需要阅读这些压缩文件是这样的:
awk '{ ... }' <(gzip -dc input1.vcf.gz) <(gzip -dc input2.vcf.gz)
试试这个:
awk 'FNR==NR { sub(/AA=\.;/,""); array[$1,$2]=$8; next } ($1,$2) in array { print $0 ";" array[$1,$2] }' <(gzip -dc input1.vcf.gz) <(gzip -dc input2.vcf.gz) | gzip > output.vcf.gz
zcat FILE | awk '{ ...}'
我不能够告诉它所有这些方法效果最好,用zcat至少更快类型;)
bzip2 -dc input1.vcf.bz2 input2.vcf.bz2 | awk 'FNR==NR { array[$1,$2]=$8; next } ($1,$2) in array { print $0 ";" array[$1,$2] }'
要么
gzip -dc input1.vcf.gz input2.vcf.gz | awk 'FNR==NR { array[$1,$2]=$8; next } ($1,$2) in array { print $0 ";" array[$1,$2] }'
编辑:
写压缩输出只是追加
| bzip2 >output.vcf.bz2
要么
| gzip >output.vcf.gz
这将与打印结果到标准输出的任何程序中工作。
BTW:编辑这样大的命令行很快就会乏味。 你应该考虑写一个小的shell脚本来完成这项工作。 这样做,你不必记得整个事情,并可以很容易地重复该命令或在必要时修改它的额外好处。
为Linux shell编程一个很好的出发点是bash编程Inroduction由Mike G.