这个问题与this other非常接近,但答案并非如此 对我有效,我认为由于我的shell脚本不适用于管道。
这是我的多作业命令:
parallel "./ClientesActivos-AP-N.sh -t 15" ::: $(seq 0 2)
我希望输出如下:
file0.out
file1.out
file2.out
我不知道应该在哪里放置重定向器 >
。
我没有运气测试过:
parallel ./ClientesActivos-AP-N.sh -t 15 ">" file{}.out ::: $(seq 0 1)
parallel ./ClientesActivos-AP-N.sh -t 15 ::: $(seq 0 1) ">" file{}.out
我的脚本以这种方式运作:
./ClientesActivos-AP-N.sh -t 15 0
./ClientesActivos-AP-N.sh -t 15 1
./ClientesActivos-AP-N.sh -t 15 2
因此,对于file0.out
,file1.out
和file2.out
,输出将(对于上述手动非平行示例)。
将每个作业重定向到其他文件的正确方法是什么?
进一步不成功的测试:
parallel --files file{}.out "./ClientesActivos-AP-N.sh -t 15" ::: $(seq 0 2)
答案 0 :(得分:3)
我发现--dry-run
选项是调试 GNU Parallel 命令的好方法。基本上,它告诉你如果没有实际做任何事情它会做什么 - 这也节省了我不得不写一个虚拟" ClientesActivos" 脚本,我们都知道我的西班牙语有多好#39 ; t ;-)
所以,对于你当前的问题,如果你试试这个,我认为它显示的是你想做的事情:
$ parallel --dry-run ./ClientesActivos-AP-N.sh -t 15 {} ">" file{}.out ::: {0..1}
./ClientesActivos-AP-N.sh -t 15 0 > file0.out
./ClientesActivos-AP-N.sh -t 15 1 > file1.out