passa o resultado do comando para outro em lotes

1

Digamos que command1 resulte em uma matriz de 10000 valores,

Eu quero passar este resultado para o comando2 em 20 patches, 500 valores cada.

O que eu tenho agora

command1 arg $(command2 arg)
    
por iShaalan 18.05.2017 / 09:30

1 resposta

2

Você pode usar xargs para essa finalidade:

command2 arg | xargs -n 500 command1

xargs é um programa para construir e executar linhas de comando a partir de entrada padrão .

  • -n diz que cada vez que executar a entrada command com 500 dada a partir de stdin .

Para testar:

$ 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
    
por 18.05.2017 / 09:52