动态分配文件名以匹配目录名称

时间:2013-08-21 19:13:39

标签: bash fastq

#!/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文件中,并将合并后的文件保存到目标目录。如您所见,我在程序中动态创建文件。我希望他们的名字与目录名称(基本上是$ f)匹配,其中存在fastq文件。有没有办法动态地为文件分配名称?

1 个答案:

答案 0 :(得分:1)

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