我有一个包含以下项目的文件:
echo 1 ; sleep 2
echo 2 ; sleep 2
echo 3 ; sleep 2
echo 4 ; sleep 2
echo 5 ; sleep 2
echo 6 ; sleep 2
echo 7 ; sleep 2
通过并发控制迭代执行每一行的最佳方法是什么(一次最多2项)。我正在考虑使用xargs但到目前为止没有运气。
答案 0 :(得分:2)
$ cat file.txt
echo 1 ; sleep 1
echo 2 ; sleep 1
echo 3 ; sleep 1
echo 4 ; sleep 1
...
echo 13 ; sleep 1
echo 14 ; sleep 1
使用xargs并行化运行它:
xargs -a file.txt -I CMD --max-procs=2 sh -c CMD
这似乎产生了一些输出,但主要是顺序的,虽然偶尔会得到独立的输出:
1
3
2
4
...
13
14
-I
选项用替换替换每个读取的命令,在本例中为CMD
sh -c CMD
基本上说明每个命令的内容。-c
告诉sh命令将来自命令字符串也许使用需要更多处理的命令运行它会显示一些并行化的提示