Domanda
Quindi la mia domanda è se posso in qualche modo inviare dati al mio programma e quindi inviare gli stessi dati E i suoi risultati a un altro programma senza dover creare un file temporaneo (nel mio caso ouputdata.txt). Preferibilmente usando linux pipe / bash.
Attualmente eseguo le seguenti operazioni:
cat inputdata.txt | ./MyProg > outputdata.txt
cat inputdata.txt outputdata.txt | ./MyProg2
Soluzione
Scelta 1: correggi MyProg
per scrivere l'output unito dall'input e il proprio output. Quindi puoi farlo.
./MyProg <inputdata.txt | ./MyProg2
Scelta 2 - Se non riesci a correggere MyProg
per scrivere sia input che output, devi unire.
./MyProg <inputdata.txt | cat inputdata.txt - | ./MyProg2
Altri suggerimenti
Ecco un altro modo, che può essere esteso per mettere insieme l'output di due programmi:
( Prog1; Prog2; Prog3; ... ) | ProgN
Questo almeno funziona in Bash.