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 ファイルがあり、それらを 1 つの .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 に答える