【发布时间】:2014-07-07 13:13:56
【问题描述】:
我在两个单独的目录中有一系列文件,我想相互匹配。命名法如下所示:
转发目录: 1_A_R1_Paired.gz, 1_B_R1_Paired.gz, 2_A_R1_Paired.gz, 2_B_R1_Paired.gz 等等
反向目录: 1_A_R2_Paired.gz, 1_B_R2_Paired.gz, 2_A_R2_Paired.gz, 2_B_R2_Paired.gz 等等
我想设置我的 for 循环,以便我的命令仅在匹配的文件 R1 和 R2 上执行,结果将是:
my_command 1_A_R1_Paired.gz 1_A_R2_Paired.gz > 1_A_R1R2.bam
但不是:
my_command 1_A_R1_Paired.gz 1_B_R2_Paired.gz > 1_AB_R1R2.bam
其他人在这里遇到了类似的问题:bash: for loop, two variables linked。该解决方案是:
for f in dir1/*.fq; do
b=$(basename "$f")
f2=dir2/"$b".sa
if test -f "$f2"; then
mycommand "$f2" "$f" >"$b".sa.cc
fi
done
不幸的是,这对我不起作用,可能是因为我的文件没有相同的基本名称。有人可以给我一个建议吗?我是这里的新手。
【问题讨论】: