将命令的结果批量传递给另一个命令

将命令的结果批量传递给另一个命令

假设 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

相关内容