Вопрос

Поэтому мой вопрос заключается в том, могу ли я каким-либо образом отправить данные в мою программу, а затем отправить те же данные и их результат в другую программу без необходимости создания временного файла (в моем случае ouputdata.txt). Предпочтительно использовать linux pipe / bash.

В настоящее время я делаю следующее:

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

cat inputdata.txt outputdata.txt | ./MyProg2

Это было полезно?

Решение

Вариант 1 - исправьте MyProg , чтобы записать объединенный вывод из ввода и его собственный вывод. Тогда вы можете сделать это.

./MyProg <inputdata.txt | ./MyProg2

Вариант 2 - Если вы не можете исправить MyProg для записи как ввода, так и вывода, вам нужно объединить.

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

Другие советы

Вот еще один способ, который можно расширить, чтобы соединить выходные данные двух программ:

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

По крайней мере, это работает в Bash.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top