2013-08-21 73 views
0
#!/bin/bash 
#script to loop through directories to merge fastq files 
sourcedir=/path/to/source 
destdir=/path/to/dest 

for f in $sourcedir/* 
do   
    zcat *R1*.fastq.gz | gzip > $destdir/R1.fastq.gz 
    zcat *R2*.fastq.gz | gzip > $destdir/R2.fastq.gz  
done 

这里在目录'source'中有大约30个子目录。每个子目录都有一些.fastq.gz文件,我想将它们合并到一个.fastq.gz文件中,并将合并后的文件保存到目标目录中。正如你所看到的,我正在我的程序中动态创建文件。我希望他们的名字匹配fastq文件存在的目录名称(基本上是$ f)。有没有办法为文件动态分配名称?动态地分配文件名以匹配目录名称

回答

1
fbase=$(basename -- "$f") 
zcat -- *$fbase*.fastq.gz | gzip > "$destdir/$fbase.fastq.gz"