如何附加到管道上?

时间:2008-12-01 15:48:04

标签: bash pipe

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

我目前正在执行以下操作:

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

cat inputdata.txt outputdata.txt | ./MyProg2

2 个答案:

答案 0 :(得分:22)

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

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

至少在Bash中有效。

答案 1 :(得分:11)

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

./MyProg <inputdata.txt | ./MyProg2

选择2 - 如果您无法修复MyProg来同时写入输入和输出,则需要合并。

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