2013-02-20 65 views
0

我有多个文件对不同之处仅在一个数字:如何在bash脚本中排序和使用多个文件?

121_S11_L001_R1_001

121_S11_L001_R2_001

且相对于其它文件的另一个对,多个号码有所不同,但是相对于它的对,只是再次在一个编号:

120_S10_L001_R1_001

120_S10_L001_R2_001

我有一个bash脚本单独处理这些文件:

如果[-s $ INFILE] & & [! -s $ infile.bwa];又在哪里“的infile”和“infile2”在命令行

不用手动输入每一对,我怎么递归选择和处理每对每个文件上指定的文件

echo "Creating BWA file..." 
time bwa aln $path"Genomeidx" $infile > $infile.bwa 
time bwa aln $path"Genomeidx" $infile2 > $infile2.bwa 

+1

不知道一对是什么。你能举一个你需要输入的例子吗? – cnicutar 2013-02-20 04:44:24

+0

除R1和R2以外,每个文件名相对于其对都是相同的。这些文件是成对的。我想像在bash脚本块中显示的那样一起处理它们,然后,另一个类似地处理它们。 这就是你说'你需要输入'的意思吗? – Vince 2013-02-20 04:50:34

+0

我的意思是作为你的*的参考,而不是手动输入每一对*,并会喜欢一个例子,因为我不明白你之前发布的那些。 – cnicutar 2013-02-20 04:58:08

回答

2

您可以使用bash globbing挑选所有_R1_样式文件,然后找到它的对。

像这样的事情可以适用于做你的处理:

#!/bin/bash 

for file in *_R1_*; do 
    pair=${file/_R1_/_R2_} 
    if [ -f "$pair" ]; then 
     echo "processing $file and its pair $pair" 
    fi 
done 
+0

这确实解决了配对问题,但我一直试图使它在所有配对文件上递归运行。任何人都知道如何做到这一点? – Vince 2013-02-20 07:27:40

+0

您的意思是脚本也应该下载到子目录中吗? – 2013-02-20 09:38:11

相关问题