Verificar o diretório de arquivos e encontrar replicações com o mesmo nome e concatená-los em um arquivo

1

Eu tenho um diretório com vários arquivos

Por exemplo:

ExperimentA_Rep1.bed  
ExperimentA_Rep2.bed
ExperimentA_Rep3.bed 
ExperimentB_Rep1.bed 
ExperimentD_Rep1.bed 
ExperimentC_Rep1.bed
ExperimentC_Rep2.bed
 . . . 
ExperimentZ_Rep5.bed

Eu preciso examinar os nomes dos arquivos em um diretório e concatenar os arquivos que são da mesma experiência, mas replicações diferentes, em um novo arquivo.

Ou seja, cat ExperimentA_Rep1.bed ExperimentA_Rep2.bed > ExperimentA_merged.bed

Mas não posso codificar isso, ele precisa ser aplicável a qualquer conjunto de dados de experiências.

Se eu executasse um script python, tudo bem.

    
por Anonymous 18.10.2015 / 02:52

1 resposta

0

O seguinte assume que a parte Rep do nome do arquivo é numerada sequencialmente de 1 (ou seja, não haverá um Rep2 ou Rep3, a menos que também haja um Rep1). Ele usa a presença de um arquivo "Rep1" para decidir se deve ou não rodar o gato para uma série particular de arquivos Experiment * ... isso é necessário apenas se houver alguns arquivos faltando na sequência ExperimentA * .. ExperimentZ * . Se isso não for possível, basta excluir [ -e Experiment${f}_Rep1.bed ] && da linha do gato.

for f in {A..Z} ; do
    [ -e Experiment${f}_Rep1.bed ] && cat Experiment${f}_Rep*.bed > Experiment${f}_merged.bed
done
    
por 18.10.2015 / 04:27