首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在没有GNU并行的情况下在bash中并行运行任务

如何在没有GNU并行的情况下在bash中并行运行任务
EN

Stack Overflow用户
提问于 2016-07-29 15:43:13
回答 1查看 144关注 0票数 0

我想在一台64核的机器上处理2000个文件。我有一个python脚本foo.py,运行方式如下:

代码语言:javascript
运行
复制
cat file0000.txt|./foo.py > out0000.txt

理想情况下,我会将2000个文件file0000.txt到file01999.txt拆分为40个集合,每个集合的大小为50,并在每个集合上并行运行foo.py。对于40个集合中的1到4,这将等同于以下内容:

代码语言:javascript
运行
复制
cat file00[0-4][0-9] |./foo.py > outfile1.txt &
cat file00[5-9][0-9] |./foo.py > outfile2.txt &
cat file01[0-4][0-9] |./foo.py > outfile3.txt &
cat file01[5-9][0-9] |./foo.py > outfile4.txt &

遗憾的是,我运行这段代码的系统没有parallel,所以我不得不在没有这个非常有用的工具的情况下完成这项工作。

Bash script processing commands in parallel看起来很相似,但最流行的答案并不直接相关,第二个最流行的答案使用的是parallel,我无法访问它。

EN

回答 1

Stack Overflow用户

发布于 2016-07-30 15:39:33

根据评论:执行GNU Parallel的个人安装,如果您被允许运行自己的脚本,则可以这样做:

代码语言:javascript
运行
复制
./configure --prefix=$HOME && make && make install

然后:

代码语言:javascript
运行
复制
ls | ~/bin/parallel 'cat {} | ./foo.py > {= s/file/out/ =}'
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38653190

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档