Question

Donc, ma question est de savoir si je peux en quelque sorte envoyer des données à mon programme, puis envoyer les mêmes données ET son résultat à un autre programme sans avoir à créer un fichier temporaire (dans mon cas, ouputdata.txt). Utilisez de préférence linux pipes / bash.

Je fais actuellement ce qui suit:

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

cat inputdata.txt outputdata.txt | ./MyProg2

Était-ce utile?

La solution

Choix 1 - corrigez MyProg pour écrire la sortie fusionnée à partir de l'entrée et de sa propre sortie. Ensuite, vous pouvez le faire.

./MyProg <inputdata.txt | ./MyProg2

Choix 2 - Si vous ne parvenez pas à corriger MyProg pour écrire en entrée et en sortie, vous devez fusionner.

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

Autres conseils

Voici un autre moyen, qui peut être étendu pour rassembler la sortie de deux programmes:

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

Cela fonctionne au moins dans Bash.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top