Tengo una gran cantidad de scripts que se pueden ejecutar como trabajos separados en un clúster informático, que utiliza slurm. Quiero seleccionar algunos de ellos, según el contenido, para enviarlos. Es fácil identificar los nombres de archivos de los trabajos que quiero usando grep, pero me cuesta canalizarlos y enviarlos.
Pensé que podría hacer algo como esto:
grep -l 'regex' script_folder/* | xargs sbatch
Sin embargo, esto parece enviar todos los scripts como un solo trabajo, cuando quiero que cada script sea su propio trabajo independiente.
Respuesta1
grep -l 'pattern' script_folder/* | xargs -n 1 sbatch
xargs
De forma predeterminada, leerá todo lo que quepa en una línea de comando antes de ejecutar la utilidad dada con todas las cosas que ha leído.
Con -n 1
usted limita la cantidad de elementos que pasa a la utilidad a un solo elemento por invocación.