combina arquivos que compartilham caracteres semelhantes

0

Eu tenho uma pasta com centenas de arquivos. Esses arquivos são arquivos de pontuação para 26 variáveis ambientais em 510 arquivos genotípicos. Por exemplo, nos exemplos abaixo, _s2. é a segunda variável ambiental, _s3. é a terceira variável ambiental, etc. _9 _ indica que é para o 9º arquivo genotípico.

lfmm_run2_9_s2.3.zscore
lfmm_run2_9_s24.3.zscore
lfmm_run2_9_s25.3.zscore
lfmm_run2_9_s26.3.zscore
lfmm_run2_9_s3.3.zscore
lfmm_run2_9_s4.3.zscore
lfmm_run2_9_s5.3.zscore
lfmm_run2_9_s6.3.zscore
lfmm_run2_9_s7.3.zscore
lfmm_run2_9_s8.3.zscore
lfmm_run2_9_s9.3.zscore
...

Eu quero combinar os arquivos genotípicos para cada variável de ambiente. o que estou fazendo é

cat lfmm_run2_{1..510}_s1.3.zscore > env1
cat lfmm_run2_{1..510}_s2.3.zscore > env2
cat lfmm_run2_{1..510}_s3.3.zscore > env3

Mas é preciso muito tempo para fazer isso para todas as 26 variáveis ambientais, uma a uma. Existe alguma maneira mais rápida de fazer isso tudo por um único comando?

    
por Anna1364 11.11.2018 / 17:28

1 resposta

1

Use um loop for para executar cat 26 vezes, uma para cada número de 1 a 26:

for i in {1..26} ; do
    cat lfmm_run2_{1..510}_s"$i".3.zscore > env"$i"
done
    
por 11.11.2018 / 17:36