我尝试使用bash脚本时出现问题。我有一个包含1000个文件的目录,我希望按顺序使用每个文件运行一个命令。但是,每个文件都与另一个文件配对,例如File1.sam,File1.gz,File2.sam,File2.gz等。而我正在执行的命令要求将两个文件作为参数使用。当只需要一个参数时,我一直在使用类似于以下命令的东西,并且我认为(错误地)我可以简单地像下面那样扩展它。bash脚本按顺序执行程序
shopt -s nullglob
for myfile1 in *.sam && for myfile2 in *.gz
do
./bwa samse -r "@RG\tID:$myfile1\tLB:$myfile1\tSM:$myfile1\tPL:ILLUMINA" lope_V1.2.fasta $myfile1 $myfile2 > $myfile1.sam2 2>$myfile1.log
done
任何人都知道我可以如何修改这个或以另一种方式指向我?
看起来不错。只有改进的建议是使用更严格的PE myfile2 =“$ {myfile1%.sam} .gz”'。 – 2013-03-16 22:47:43
@JoshCartwright谢谢,我更新了帖子 – 2013-03-16 22:50:04
哦,我没有看到你已经从'。/ bwa'行的引号中删除了$ myfile1参数扩展。你为什么要这么做?如果文件名有空格,这将会由于分词而中断。 – 2013-03-16 22:52:25