Question

So my question is if I can somehow send data to my program and then send the same data AND its result to another program without having to create a temporary file (in my case ouputdata.txt). Preferably using linux pipes/bash.

I currently do the following:

cat inputdata.txt | ./MyProg > outputdata.txt

cat inputdata.txt outputdata.txt | ./MyProg2

Was it helpful?

Solution

Choice 1 - fix MyProg to write the merged output from the input and it's own output. Then you can do this.

./MyProg <inputdata.txt | ./MyProg2

Choice 2 - If you can't fix MyProg to write both input and output, you need to merge.

./MyProg <inputdata.txt | cat inputdata.txt - | ./MyProg2

OTHER TIPS

Here is another way, which can be extended to put the output of two programs together:

( Prog1; Prog2; Prog3; ...  ) | ProgN

That at least works in Bash.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top