Concatena vários arquivos em subdiretórios

5

Minha estrutura de diretórios é fornecida abaixo

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

Eu quero concatenar os arquivos com "R1" e "R2" separadamente para cada amostra. Eu sei

cat file1.fastq file2.fastq > concatenation.fastq 

dará concatenate mas como eu faço isso para todos os sudirectories com script único?

    
por Jana 14.11.2012 / 19:06

2 respostas

6
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
    
por 14.11.2012 / 20:54
4

Assim:

cat ./*/*R2* > result

* - corresponde a tudo

Esteja ciente de que isso obterá todas as ocorrências de R2 no nome do arquivo.

    
por 14.11.2012 / 19:16