假设我有 10K filea 和一个处理单个文件的 bash
脚本。现在我想同时处理所有这些文件,只使用并行运行的 K
脚本。我不想(显然)多次处理任何文件。
您建议如何在 bash
中实现它?
最佳答案
执行有限数量的并行作业的一种方法是使用 GNU parallel .例如,使用此命令:
find . -type f -print0 | parallel -0 -P 3 ./myscript {1}
您将当前目录(及其子目录)中的所有文件作为参数传递给 myscript
,一次一个。 -0
选项设置分隔符为空字符,-P
选项设置并行执行的作业数。默认的并行进程数等于系统中的内核数。集群等中的并行处理还有其他选项,已记录在案 here .
关于bash - 如何与 bash 同时处理文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17382802/