#!/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文件。有没有办法动态地为文件分配名称?
答案 0 :(得分:1)
fbase=$(basename -- "$f")
zcat -- *$fbase*.fastq.gz | gzip > "$destdir/$fbase.fastq.gz"