gnu-parallel - 使用 GNU 并行在多个文件内的多行上并行执行 bash 脚本

标签 gnu-parallel

我想使用 GNU 并行来解决以下问题:

我有几个文件,每个文件都有几行文本。我想了解如何在每个文件的每一行文本上以及每个文件并行运行脚本(code.sh)。我应该能够将每个输入文件的操作输出写入具有不同扩展名的输出文件。

这似乎是多个并行命令在所有文件上并行运行,然后对每个文件内的所有行并行运行的情况。

这是我使用的:

ls mydata_* |
    parallel -j+0 'cat {} | parallel -I ./explore-bash.sh > {.}.out'

我不知道如何使用 GNU 并行来做到这一点。请帮忙。

最佳答案

你的解决方案看起来很合理。您只需删除 -I:

ls mydata_* | parallel -j+0 'cat {} | parallel ./explore-bash.sh > {.}.out'

根据您的设置,这可能会更快,因为它只会运行 n 个作业,而上面的解决方案将并行运行 n*n 个作业(n = 核心数):

ls mydata_* | parallel -j1 'cat {} | parallel ./explore-bash.sh > {.}.out'

关于gnu-parallel - 使用 GNU 并行在多个文件内的多行上并行执行 bash 脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44301505/

相关文章:

gnu-parallel - npm 使用 gnu parallel 安装子目录

bash - 在 GNU Parallel 中启用/禁用二进制标志

linux - 多个(有一个固定的)GNU 并行参数

Bash等待不起作用

python - 如何有效地打印 JSON 对象列表?

mysql - gnu 并行 mysql LOAD DATA LOCAL INFILE

bash - 使用 gnu-parallel 加速 grep 和 awk

bash - 在多台机器上并行运行脚本

linux - 在 Linux 上并行执行需要多个输入的作业

bash - gnu 并行缺少 bash 的参数?