Como posso acrescentar para tubos?
Pergunta
Assim, a minha pergunta é se eu posso de alguma forma enviar dados para meu programa e, em seguida, enviar os mesmos dados e seu resultado para outro programa sem ter que criar um arquivo temporário (no meu caso ouputdata.txt). De preferência usando tubos Linux / bash.
Actualmente, eu fazer o seguinte:
inputdata.txt gato | ./MyProg> outputdata.txt
inputdata.txt gato outputdata.txt | ./MyProg2
Solução
Escolha 1 - correção MyProg
para escrever a saída mesclada a partir da entrada e sua saída própria. Em seguida, você pode fazer isso.
./MyProg <inputdata.txt | ./MyProg2
Escolha 2 - Se você não pode consertar MyProg
para escrever entrada e saída, você precisa merge
./MyProg <inputdata.txt | cat inputdata.txt - | ./MyProg2
Outras dicas
Aqui é uma outra maneira, que pode ser estendido para colocar a saída de dois programas juntos:
( Prog1; Prog2; Prog3; ... ) | ProgN
que pelo menos obras em Bash.