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)相匹配。有没有办法动态地为文件分配名称?

4

1 回答 1

1
fbase=$(basename -- "$f")
zcat -- *$fbase*.fastq.gz | gzip > "$destdir/$fbase.fastq.gz"
于 2013-08-21T19:17:54.107 回答