次の GNU 並列コマンドがあります。
parallel --gnu --jobs 4 \
normalize-by-median.py \
-k 20 -C 20 --paired -N 4 -x 6e9 \
--out pdom-{}-diginorm.fq \
pdom-{}.fq.gz \
::: 200bp 500bp 1kb 3kb 8kb
ディスクに書き込む前に出力を圧縮したいと思います。通常、これを にパイプするだけですgzip -c
が、残念ながら、この特定の Python スクリプトには出力を stdout に送信するオプションがありません。次に、代わりにプロセス置換を使用できると考えました。以下を試しました。
parallel --gnu --jobs 4 \
normalize-by-median.py \
-k 20 -C 20 --paired -N 4 -x 6e9 \
--out >(gzip -c - > pdom-{}-diginorm.fq.gz) \
pdom-{}.fq.gz \
::: 200bp 500bp 1kb 3kb 8kb
ただし、この後者の例の中括弧は、GNU 並列引数のプレースホルダーとしてではなく、サブプロセスによって文字どおりに解釈されます。これを機能させる方法はありますか?