假设 command1 的结果是一个包含 10000 个值的数组,
我想将这个结果以 20 个补丁的形式传递给 command2,每个补丁 500 个值。
我现在拥有的
command1 arg $(command2 arg)
答案1
您可以xargs
为此目的使用:
command2 arg | xargs -n 500 command1
xargs
是一个从标准输入构建和执行命令行的程序。
-n
表示每次运行时都command
给出 500 个输入stdin
。
测试一下:
$ echo `for i in {1..50}; do echo $i; done;` | xargs -n 10 echo
1 2 3 4 5 6 7 8 9 10
11 12 13 14 15 16 17 18 19 20
21 22 23 24 25 26 27 28 29 30
31 32 33 34 35 36 37 38 39 40
41 42 43 44 45 46 47 48 49 50