78 votes

Comment joindre deux tubes nommés en un seul flux d'entrée sous linux ?

En utilisant les tuyaux ( | ) de Linux, je peux faire suivre l'entrée standard vers un ou plusieurs flux de sortie.

Je peux utiliser tee pour diviser la sortie en sous-processus séparés.

Existe-t-il une commande permettant de joindre deux flux d'entrée ?

Comment dois-je m'y prendre ? Comment fonctionne le différentiel ?

3voto

Kluyg Points 101

Une commande vraiment cool que j'ai utilisée pour cela est tpipe vous aurez peut-être besoin de compiler parce que ce n'est pas si courant. Il est vraiment génial pour faire exactement ce dont vous parlez, et il est si propre que je l'installe habituellement. La page de manuel se trouve ici http://linux.die.net/man/1/tpipe . Le téléchargement actuellement répertorié se trouve dans cette archive http://www.eurogaran.com/downloads/tpipe/ .

C'est utilisé comme ça,

## Reinject sub-pipeline stdout into standard output:
$ pipeline1 | tpipe "pipeline2" | pipeline3

1voto

Rian Hunter Points 61

Le meilleur programme pour ce faire est lmerge . Contrairement à la réponse de Freihart, elle est orientée ligne, de sorte que les sorties des deux commandes ne se chevauchent pas. Contrairement à d'autres solutions, elle fusionne équitablement les entrées afin qu'aucune commande ne puisse dominer la sortie. Par exemple :

$ lmerge <(yes foo) <(yes bar) | head -n 4

Donne une sortie de :

foo
bar
foo
bar

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X