Comment puis-je ajouter sur des tuyaux?
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
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.