Gnu parallel:如何使用 'expand' 位置参数的 --link 选项构建命令?
Gnu parallel: how to build a command using the --link option to 'expand' positional arguments?
问题
我正在使用 GNU parallel 并希望使用 :::
运算符将两个文件传递给程序。我的目录树如下所示:
$ 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
我想你想要这个:
parallel --dry-run --link echo -1 {1} -2 {2} ::: a b ::: c d
输出
echo -1 a -2 c
echo -1 b -2 d
问题
我正在使用 GNU parallel 并希望使用 :::
运算符将两个文件传递给程序。我的目录树如下所示:
$ 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
我想你想要这个:
parallel --dry-run --link echo -1 {1} -2 {2} ::: a b ::: c d
输出
echo -1 a -2 c
echo -1 b -2 d