在用于后处理一些模拟数据的较大脚本中,我有以下行:
parallel bnzip2 -- *.bz2
如果我理解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
parallel
我的系统上的手册页给出了:
parallel(1) parallel(1)
NAME
parallel - run programs in parallel
....
AUTHOR
Tollef Fog Heen
这似乎是不是GNU 版本。
答案1
您对来自 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
观看 GNU Parallel 的介绍视频以了解更多信息: https://www.youtube.com/playlist?list=PL284C9FF2488BC6D1
答案2
(我会对此发表评论,但我缺乏特权。)
您也可以只使用parallel --gnu
.你说Ubuntu 12(.04?)使用Tollef的版本,但实际上它是gnu实现,只是出于某种原因默认使用Tollef的语法。
我添加alias parallel='parallel --gnu'
到我的登录脚本中,这样我就不必再为它大惊小怪了。