Suponiendo que tiene más de un núcleo, y cada invocación puede ejecutarse independientemente del resto, obtendrá una aceleración considerable con ejecuciones paralelas.
Una forma relativamente simple de hacerlo es a través del -P
parámetro de xargs
, por ejemplo, si tiene 4 núcleos:
echo xyz{1..5025} | \
xargs -n 1 -P 4 -I{} /path/to/transeq xyz{} xyz{}.faa -table 11
El -n 1
le dice xargs
que elija solo un argumento de la lista para cada invocación (por defecto pasaría mucho) , y -P 4
le dice que genere 4 procesos al mismo tiempo: cuando uno muere, se genera uno nuevo.
En mi humilde opinión, no es necesario instalar GNU en paralelo para este caso simple - es xargs
suficiente.
for file in xyz*; do ./transeq "$file" "${file}.faa" -table 11; done
. Escribo este tipo de cosas todo el tiempo. Y si desea verificar que los nombres de archivo, etc., se expanden de la manera que desea, simplemente coloque unecho
derecho después dedo
la primera vez, y luego regrese a su historial de shell y elimínelo la segunda vez.