如何管道两个输出文件到bgzip呢?

时间:2016-06-30 21:50:05

标签: linux io pipe output gzip

我正在运行一个生成两个输出文件的命令,这两个文件非常大,我想将输出管道化为bgzipped,而不是在写入后在输出上运行bgzip。

这些是我目前的命令:

samtools sort -n --threads 16  -l 0 $file --reference $ref.fa | samtools fastq  - -1 $file_1.fastq -2 $file_2.fastq
bgzip $file_1.fastq
bgzip $file_2.fastq

是否可以在一个命令中完成所有这些操作?

谢谢!

2 个答案:

答案 0 :(得分:1)

想出来!

samtools sort -n --threads 16  -l 0 $file --reference $ref.fa | samtools fastq - -1 >(pigz -p 12 > $file_1.fastq.gz) -2 >(pigz -p 12 > $file_2.fastq.gz)

答案 1 :(得分:0)

那些" -1"和" -2"旗帜是什么意思?

如果他们的意思是"将stdout重定向到FILE"并且"将stderr重定向到FILE",然后就可以这样:

((YOUR_COMMAND)| bzip> $ file_1.fastq.bz)2> 1 | bzip> $ file_2.fastq.bz

YOUR_COMMAND与你正在做的事情相同,只是没有-1和-2。这里的想法是将stdout发送到一个管道并将stderr发送到另一个管道。是的,它有点摇摇晃晃。 (如果您之前在管道中报告了错误,它将显示在文件2中。)

如果那不是-1和-2的意思,那么......我不知道任何技巧。