2013-08-21 74 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"