Supondo que você tenha mais de um núcleo e que cada chamada possa ser executada independentemente do restante, você ganhará bastante aceleração com execuções paralelas.
Uma maneira relativamente simples de fazer isso é através do -P
parâmetro xargs
- por exemplo, se você tiver 4 núcleos:
echo xyz{1..5025} | \
xargs -n 1 -P 4 -I{} /path/to/transeq xyz{} xyz{}.faa -table 11
O comando -n 1
diz xargs
para escolher apenas um argumento da lista para cada invocação (por padrão, ele passaria bastante) e o comando -P 4
para gerar 4 processos ao mesmo tempo - quando um morre, um novo é gerado.
IMHO, você não precisa instalar o GNU paralelo para este caso simples - xargs
basta.
for file in xyz*; do ./transeq "$file" "${file}.faa" -table 11; done
. Eu digito esse tipo de coisa o tempo todo. E se você deseja verificar se os nomes dos arquivos etc. estão sendo expandidos da maneira que deseja, basta colocar umecho
logo apósdo
a primeira vez e, em seguida, voltar ao histórico do shell e excluí-lo na segunda vez.