【问题标题】:Gnu parallel: how to build a command using the --link option to 'expand' positional arguments?Gnu 并行:如何使用 --link 选项构建命令以“扩展”位置参数?
【发布时间】:2019-06-24 13:36:01
【问题描述】:

问题

我正在使用 GNU 并行并希望使用 ::: 运算符将两个文件传递给程序。我的目录树如下所示:

$ ls 

SRR6301073_pass_1_trimmed.fq  
SRR6301073_pass_2_trimmed.fq  
SRR6301129_pass_1_trimmed.fq  
SRR6301129_pass_2_trimmed.fq  
...

以下代码:

#!bin/bash
ones=$(find SRR*pass*1*.fq)
twos=$(find SRR*pass*2*.fq)    
parallel --link echo ::: $ones ::: $twos

生产:

SRR6301033_pass_1_trimmed.fq SRR6301033_pass_2_trimmed.fq
SRR6301034_pass_1_trimmed.fq SRR6301034_pass_2_trimmed.fq
...

但我实际上需要输出如下所示:

-1 SRR6301033_pass_1_trimmed.fq -2 SRR6301033_pass_2_trimmed.fq
-1 SRR6301034_pass_1_trimmed.fq -2 SRR6301034_pass_2_trimmed.fq
...

我已经尝试过的

这个:

$ parallel --link echo -1 ::: $ones -2 ::: $twos

产生

-1 SRR6301033_pass_1_trimmed.fq SRR6301033_pass_2_trimmed.fq
-1 SRR6301034_pass_1_trimmed.fq SRR6301034_pass_2_trimmed.fq

还有这个:

$ parallel --link echo -1 ::: $ones ::: $twos

生产:

-1 SRR6301033_pass_1_trimmed.fq -2
-1 SRR6301034_pass_1_trimmed.fq SRR6301033_pass_2_trimmed.fq
-1 SRR6301037_pass_1_trimmed.fq SRR6301034_pass_2_trimmed.fq

【问题讨论】:

    标签: bash parallel-processing gnu-parallel


    【解决方案1】:

    我想你想要这个:

    parallel --dry-run --link echo -1 {1} -2 {2} ::: a b ::: c d
    

    输出

    echo -1 a -2 c
    echo -1 b -2 d
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-03-26
      • 2021-12-02
      • 1970-01-01
      • 1970-01-01
      • 2013-01-30
      • 2012-06-11
      • 1970-01-01
      相关资源
      最近更新 更多