bash - 如何与 bash 同时处理文件?

标签 bash file concurrency

假设我有 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/

相关文章:

php - 如何在逗号分隔的文件中插入逗号

java.lang.NullPointerException 输出词频-逆文档频率(tfidf)矩阵 java

java - 这种并发模式有名称吗?

java - 编写 bash 或其他脚本以重新启动另一个脚本

bash - sed 在单个命令中交换单词

linux - 如何停止在 Shell 脚本中换行

java - 在 Java 中使用 ThreadLocal 的良好实践

python - 一个 shell 脚本如何从自身内部执行另一个 shell 脚本

java - 使用 BufferedReader 从不断增长的大型文件中读取

java - 我如何 "cancel"一个 CountDownLatch?