fbpx
维基百科

GNU parallel

GNU parallel是用于Linux和其他类Unix操作系统的命令行驱动的实用工具,它允许用户并行的执行shell脚本。GNU parallel是Ole Tange用Perl写的自由软件。它可在GPLv3条款下获得[4]。GNU parallel可以在远程服务器上运行作业,它使用ssh与远程机器进行通信。

Parallel
開發者GNU计划
当前版本
  • 20230422 (2023年4月22日;不稳定版)[1]
  • 20231122 (2023年11月22日;穩定版本)[2]
源代码库
  • git.savannah.gnu.org/cgit/parallel.git
编程语言Perl
操作系统Linux和其他类Unix操作系统
类型实用工具
许可协议GPLv3
网站www.gnu.org/software/parallel/ 

用法 编辑

最常用的用法是替代shell循环,比如将

 for x in $(cat list); do   do_something "$x"  done | process_output 

变为如下形式:

 cat list | parallel do_something | process_output 

这里的文件list包含给do_something的实际参数,而这里的| process_output可以省略。

使用parallel的脚本通常比使用pexec的脚本易读。

程序parallel的特征还有:

  • 聚组标准输出标准错误输出,parallel延期输出直到所有运行作业完成;
  • 可保持输出的次序同于输入的次序;
  • 恰当的处理包含特殊字符的文件名,比如空格、单引号、双引号、&(ampersand)和UTF-8编码字符;

作为缺省,parallel并行运行作业的数量同于CPU核心数目。

例子 编辑

 find . -name "*.foo" | parallel grep bar 

上述命令是如下命令的并行等价:

 find . -name "*.foo" -exec grep bar {} + 

它在当前目录及其子目录中的名字结束于.foo的所有文件中查找字符串bar的出现。parallel将如期运行除非遇到名字包含换行的文件。为了避免这个限制可以使用:

 find . -name "*.foo" -print0 | parallel -0 grep bar 

上述命令使用空字符来分隔文件名。

 find . -name "*.foo" | parallel -X mv {} /tmp/trash 

上述命令使用{}来告知parallel{}替代为实际参数列表。

 find . -maxdepth 1 -type f -name "*.ogg" | parallel -X -r cp -v -p {} /home/media 

上述命令所做同于:

 cp -v -p *.ogg /home/media 

但是,使用find/parallel/cp的前者命令更加有效利用资源,并且在*.ogg展开后对于shell而言太大的情况下不作为错误而停止。

参见 编辑

引用 编辑

  1. ^ GNU Parallel 20230422 ('Grand Jury') released. 2023年4月22日 [2023年4月23日] (英語). 
  2. ^ GNU Parallel 20231122 ('Grindavík') released. 2023年11月23日 [2023年12月10日] (英語). 
  3. ^ Tange, Ole. . parallel (邮件列表). 2022-03-22 [2022-03-22]. (原始内容存档于2022-04-04). 
  4. ^ GNU Parallel. GNU.org. [2021-02-06]. (原始内容于2021-02-01). 

外部链接 编辑

  • 官方网站  
  • GNU parallel的项目页和手册页 (页面存档备份,存于互联网档案馆

parallel, 是用于linux和其他类unix操作系统的命令行驱动的实用工具, 它允许用户并行的执行shell脚本, 是ole, tange用perl写的自由软件, 它可在gplv3条款下获得, 可以在远程服务器上运行作业, 它使用ssh与远程机器进行通信, parallel開發者gnu计划当前版本20230422, 2023年4月22日, 不稳定版, 20231122, 2023年11月22日, 穩定版本, 源代码库git, savannah, cgit, parallel, git编程语言perl操作系统. GNU parallel是用于Linux和其他类Unix操作系统的命令行驱动的实用工具 它允许用户并行的执行shell脚本 GNU parallel是Ole Tange用Perl写的自由软件 它可在GPLv3条款下获得 4 GNU parallel可以在远程服务器上运行作业 它使用ssh与远程机器进行通信 Parallel開發者GNU计划当前版本20230422 2023年4月22日 不稳定版 1 20231122 2023年11月22日 穩定版本 2 源代码库git wbr savannah wbr gnu wbr org wbr cgit wbr parallel wbr git编程语言Perl操作系统Linux和其他类Unix操作系统类型实用工具许可协议GPLv3网站www wbr gnu wbr org software parallel 目录 1 用法 2 例子 3 参见 4 引用 5 外部链接用法 编辑最常用的用法是替代shell循环 比如将 for x in cat list do do something x done process output 变为如下形式 cat list parallel do something process output 这里的文件list包含给do something的实际参数 而这里的 process output可以省略 使用parallel的脚本通常比使用pexec的脚本易读 程序parallel的特征还有 聚组标准输出和标准错误输出 parallel延期输出直到所有运行作业完成 可保持输出的次序同于输入的次序 恰当的处理包含特殊字符的文件名 比如空格 单引号 双引号 amp ampersand 和UTF 8编码字符 作为缺省 parallel并行运行作业的数量同于CPU核心数目 例子 编辑find name foo parallel grep bar 上述命令是如下命令的并行等价 find name foo exec grep bar 它在当前目录及其子目录中的名字结束于 foo的所有文件中查找字符串bar的出现 parallel将如期运行除非遇到名字包含换行的文件 为了避免这个限制可以使用 find name foo print0 parallel 0 grep bar 上述命令使用空字符来分隔文件名 find name foo parallel X mv tmp trash 上述命令使用 来告知parallel将 替代为实际参数列表 find maxdepth 1 type f name ogg parallel X r cp v p home media 上述命令所做同于 cp v p ogg home media 但是 使用find parallel cp的前者命令更加有效利用资源 并且在 ogg展开后对于shell而言太大的情况下不作为错误而停止 参见 编辑维基共享资源中相关的多媒体资源 GNU parallelxargs pexec PPSS Distributed Parallel Processing Shell Script 页面存档备份 存于互联网档案馆 引用 编辑 GNU Parallel 20230422 Grand Jury released 2023年4月22日 2023年4月23日 英語 引文格式1维护 未识别语文类型 link GNU Parallel 20231122 Grindavik released 2023年11月23日 2023年12月10日 英語 引文格式1维护 未识别语文类型 link Tange Ole GNU Parallel 20220322 Mariu pol parallel 邮件列表 2022 03 22 2022 03 22 原始内容存档于2022 04 04 GNU Parallel GNU org 2021 02 06 原始内容存档于2021 02 01 外部链接 编辑官方网站 nbsp GNU parallel的项目页和手册页 页面存档备份 存于互联网档案馆 取自 https zh wikipedia org w index php title GNU parallel amp oldid 71601291, 维基百科,wiki,书籍,书籍,图书馆,

文章

,阅读,下载,免费,免费下载,mp3,视频,mp4,3gp, jpg,jpeg,gif,png,图片,音乐,歌曲,电影,书籍,游戏,游戏。