使用标题中的不同数字迭代linux中的文件

时间:2016-10-19 12:03:58

标签: linux bash loops

我想迭代linux中我目录中的几个文件,如下所示:

SRR057629_1.fastq.gz SRR057629_2.fastq.gz SRR057630_1.fastq.gz     
SRR057630_2.fastq.gz SRR057631_1.fastq.gz SRR057631_2.fastq.gz
SRR057632_1.fastq.gz SRR057632_2.fastq.gz SRR057633_1.fastq.gz
SRR057633_2.fastq.gz

我面临的挑战是,我需要SRR..._1SRR..._2作为一个命令(tophat2)的输入,然后接下来的几个SRR***_1SRR***_2同样的命令。原则上它看起来像这样:

tophat2 -G /Homo_sapiens/UCSC/hg19/Annotation/Genes/genes.gtf /Homo_sapiens /UCSC/hg19/Sequence/Bowtie2Index/genome SRR057636_1.fastq.gz SRR057636_2.fastq.gz
tophat2 -G /Homo_sapiens/UCSC/hg19/Annotation/Genes/genes.gtf /Homo_sapiens/UCSC/hg19/Sequence/Bowtie2Index/genome SRR057637_1.fastq.gz SRR057637_2.fastq.gz

那我怎么能为每个命令改变这些数字(粗体)?

SRR0576**29**_1.fastq.gz

SRR0576**29**_1.fastq.gz

祝福, 西蒙

1 个答案:

答案 0 :(得分:1)

for a in *_1.fastq.gz; do
   tophat2 -G /Homo_sapiens/UCSC/hg19/Annotation/Genes/genes.gtf /Homo_sapiens /UCSC/hg19/Sequence/Bowtie2Index/genome $a ${a/_1/_2}
done