我有大量脚本可以作为单独的作业在使用 slurm 的计算集群上运行。我想根据内容选择其中一些来提交。使用 grep 很容易识别我想要的作业的文件名,但我很难通过管道传输它们并提交它们。
我想我可以做这样的事情:
grep -l 'regex' script_folder/* | xargs sbatch
但是,当我希望每个脚本都是其自己的单独作业时,这似乎将所有脚本作为一项作业提交。
答案1
grep -l 'pattern' script_folder/* | xargs -n 1 sbatch
xargs
默认情况下,在执行给定实用程序之前,将读取一个命令行所能容纳的所有内容。
您可以-n 1
将传递给实用程序的项目数限制为每次调用的单个项目。