GNU并行不会产生作业

时间:2017-01-12 12:00:52

标签: bash perl debian piping gnu-parallel

升级到Debian 8.6 Jessie后,GNU并行脚本突然停止使用--pipe和-L选项并行处理超过2个作业。

升级前命令:

cat file_with_1064_lines.txt | parallel -L10 -j5 -k -v --pipe "wc -l"

产生5个进程,输出:

wc -l
10
wc -l
10
...

升级后的相同命令:

wc -l
1060
wc -l
4

(上面的两个值相对于-L选项值更改 - 第一个值为L*floor(1064/L),第二个值为1064 mod L,但始终只有两个进程输出。)

独立于并行版本观察到同样的情况(测试了最新的和2013年的版本)。

PS。

$ uname -a

Linux 3.16.0-4-amd64 #1 SMP Debian 3.16.36-1+deb8u2 (2016-10-19) x86_64 GNU/Linux

$ parallel --version

GNU parallel 20161222

1 个答案:

答案 0 :(得分:2)

-L是记录大小。这个错误是在20130122左右修复的。你想要的是读取10行的1条记录:

parallel -L10 -N1 -j5 -k -v --pipe wc -l

或1行的10条记录:

parallel -L1 -N10 -j5 -k -v --pipe wc -l