我正在运行一个生成两个输出文件的命令,这两个文件非常大,我想将输出管道化为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
是否可以在一个命令中完成所有这些操作?
谢谢!
答案 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的意思,那么......我不知道任何技巧。