parallel ---- Concurrent tool on linux
文章目录
安装
| |
输入命令
格式
- parallel command
“没有” 输入命令
行为
- 类似 cat | sh
“有” 输入命令
行为
- 类似 xargs
输入数据处理
- 后面的 {} 被 转换成 输入数据
输入数据
替换符
{}
- 原样转换替换输入数据
1 2parallel echo {} ::: hello.sh hey.txt # output: hello.sh hey.txt{.}
- “丢掉”输入数据的扩展名
| |
-I replace-str
- 类似 xargs -I R
{/} –> basename(input)
- 只保留输入文件名的 basename, dirname 被丢弃
{//} –> dirname(input)
- 只保留 dirname
- {/.} –> basename(input) + {.}
{#}
- parallel 任务列表顺序
{%}
- Job slot number
{n}
- 输入第几个数据
- 制定输入哪个数据
{n.}
- 扩展名
{n/}
- basename
{n//}
- dirname
来源
- 标准输入 stdin
-a
- a –> argmument file, 输入参数文件
1 2parallel [options] [command [arguments]] ( ::: arguments | :::+ arguments | :::: argfile(s) | ::::+ argfile(s) )::: arguments
- 单个 :::
1 2 3 4# 等价 (echo hello; echo demo) |parallel gzip parallel gzip ::: hello demo- 多个 :::
作用
进行数据组合
1 2 3 4 5parallel echo {1} {2} --link ::: 1 2 3 ::: a b c # 接收数据 (1, a) (2, b) (3, c) parallel echo {1} {2} :: 1 2 :: a b # 接收数据 (1, a) (1, b) (2, a) (2, b)–link 作用
- 让 {1} {2} 变成指定的数据源 序号
- :::+ arguments
:::: argfiles
- 多个输入数据文件
- ::::+ argfiles
-a input-file
- –arg-file
- 单个输入数据文件
进度
–eta
- 详细
–bar
进度条
- 显示: 完成任务比例 % (完成数量:剩余数量)|| 剩余时间 || 开始 和完成的任务数量
| |
-k 保持 输出结果顺序
- –keep-order
默认行为
- 先完成的结果被输出,而不是按输入的顺序
作用
- 输出结果和输入数据顺序保持一致
分配数据
-X
自动尽可能多的且平均的给进程分配多个数据
- 在 shell 允许范围内
- 比 -m 智能,少错误
- -m
文章作者
上次更新 2022-03-07 (de34a70)