Предполагая, что у вас более одного ядра, и каждый вызов может выполняться независимо от остальных, вы получите значительное ускорение при параллельных запусках.
Относительно простой способ сделать это с помощью -P
параметра xargs
- например, если у вас есть 4 ядра:
echo xyz{1..5025} | \
xargs -n 1 -P 4 -I{} /path/to/transeq xyz{} xyz{}.faa -table 11
-n 1
Говорит , xargs
чтобы выбрать только один аргумент из списка для каждого вызова (по умолчанию он будет проходить много) , и -P 4
говорит ему , чтобы породить 4 процессов одновременно - когда кто -то умирает, а новая породившие.
ИМХО, вам не нужно устанавливать GNU параллельно для этого простого случая - xargs
достаточно.
for file in xyz*; do ./transeq "$file" "${file}.faa" -table 11; done
. Я пишу такие вещи все время. И если вы хотите убедиться, что имена файлов и т. Д. Расширяются так, как вы хотите, просто поставьтеecho
сразу послеdo
первого раза, а затем вернитесь в историю оболочки и удалите ее во второй раз.