为什么(GNU?)并行失败,我该如何解决?

Hoo*_*ked 15 gnu-parallel moreutils-parallel

在对一些模拟数据进行后处理的较大脚本中,我有以下行:

parallel bnzip2 -- *.bz2
Run Code Online (Sandbox Code Playgroud)

其中,如果我理解parallel正确(我可能没有理解),应该在具有列出的扩展名的所有文件上运行程序的 n 核线程。您可能会注意到我拼错了命令bunzip2。我希望这里有警告或错误消息,但它无声无息地失败了。这是故意的吗?以后我怎么不被这件事咬到?

更新:

parallel安装的可能与我认为的不同:

> parallel --version`


parallel: invalid option -- '-'
parallel [OPTIONS] command -- arguments
    for each argument, run command with argument, in parallel
parallel [OPTIONS] -- commands
    run specified commands in parallel
Run Code Online (Sandbox Code Playgroud)

parallel我系统上的手册页提供:

 parallel(1)                                                        parallel(1)
NAME
       parallel - run programs in parallel
....
AUTHOR
   Tollef Fog Heen
Run Code Online (Sandbox Code Playgroud)

这似乎不是GNU 版本。

Ole*_*nge 22

您已经被 moreutils 与 Tollef 的相似之处混淆了。见https://www.gnu.org/software/parallel/history.html

您可以简单地通过以下方式安装 GNU Parallel:

wget http://git.savannah.gnu.org/cgit/parallel.git/plain/src/parallel
chmod 755 parallel
cp parallel sem
Run Code Online (Sandbox Code Playgroud)

观看 GNU Parallel 的介绍视频以了解更多信息:https : //www.youtube.com/playlist?list=PL284C9FF2488BC6D1


bil*_*jmc 12

(我会将其作为评论,但我缺乏特权。)

您也可以只使用parallel --gnu. 你说 Ubuntu 12(.04?) 使用 Tollef 的版本,但它实际上是 gnu 实现,它只是出于某种原因默认为 Tollef 的语法。

我添加alias parallel='parallel --gnu'到我的登录脚本中,所以我不必再为它大惊小怪了。

  • 您还可以将 `--gnu` 添加到 $HOME/.parallel/config。 (2认同)