web-dev-qa-db-ja.com

サブディレクトリの下に複数のファイルを連結する

私のディレクトリ構造を以下に示します

x:\Project_2012-158A\Sample_4041

SampleSheet.csv
4041_CGTACG_L002_R1_001.fastq
4041_CGTACG_L002_R2_001.fastq
4041_CGTACG_L006_R2_001.fastq
4041_CGTACG_L006_R1_001.fastq

x:\Project_2012-158A\Sample_4027

SampleSheet.csv
4027_TAGCTT_L002_R2_001.fastq
4027_TAGCTT_L006_R1_001.fastq
4027_TAGCTT_L002_R1_001.fastq
4027_TAGCTT_L006_R2_001.fastq

x:\Project_2012-158A\Sample_D425

SampleSheet.csv
D425_ACTGAT_L008_R2_001.fastq
D425_ACTGAT_L008_R1_001.fastq
D425_ACTGAT_L004_R2_001.fastq
D425_ACTGAT_L004_R1_001.fastq

サンプルごとに別々に「R1」と「R2」でファイルを連結したいと思います。知っている

cat file1.fastq file2.fastq > concatenation.fastq 

連結を提供しますが、単一のスクリプトですべてのsudirectoryに対してどのようにそれを行うのですか?

5
Jana
cd /path/to/Project_2012-158A &&
for dir in Sample*/; do
    for r in R1 R2; do
        outfile=${dir%/}_${r}.fastq
        glob=*_${r}_*.fastq
        cat "$dir"/$glob > "$dir/$outfile" &&
        rm -f "$dir"/$glob
    done
done
6
jw013

このような:

cat ./*/*R2* > result

*-すべてに一致

これにより、ファイル名にR2が出現するたびに取得されることに注意してください。

4
week