如何附加到管道上?

Dan*_*l O 8 bash pipe

所以我的问题是,如果我能以某种方式将数据发送到我的程序,然后将相同的数据及其结果发送到另一个程序,而无需创建临时文件(在我的情况下是ouputdata.txt).最好使用linux管道/ bash.

我目前正在做以下事情:

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

cat inputdata.txt outputdata.txt | ./MyProg2

der*_*ert 22

这是另一种方法,可以扩展为将两个程序的输出放在一起:

( Prog1; Prog2; Prog3; ...  ) | ProgN
Run Code Online (Sandbox Code Playgroud)

至少在Bash中有效.


S.L*_*ott 11

选择1 - 修复MyProg从输入和它自己的输出写入合并输出.然后你就可以做到这一点.

./MyProg <inputdata.txt | ./MyProg2
Run Code Online (Sandbox Code Playgroud)

选择2 - 如果无法修复MyProg输入和输出,则需要合并.

./MyProg <inputdata.txt | cat inputdata.txt - | ./MyProg2
Run Code Online (Sandbox Code Playgroud)