¿Cómo puedo enviar stdout a múltiples commands?

Hay algunos commands que filtran o actúan sobre la input, y luego la pasan como salida, creo que usualmente para stdout , pero algunos commands solo tomarán el stdin y harán lo que hagan con él, y no generarán nada.

Estoy muy familiarizado con OS X y, por lo tanto, hay dos que me vienen a la mente de inmediato son pbcopy y pbpaste , que son medios para acceder al portapapeles del sistema.

De todos modos, sé que si quiero tomar stdout y escupir la salida para ir tanto a stdout como a un file, entonces puedo usar el command tee . Y sé un poco sobre xargs , pero no creo que sea eso lo que estoy buscando.

Quiero saber cómo puedo dividir stdout para ir entre dos (o más) commands. Por ejemplo:

 cat file.txt | stdout-split -c1 pbcopy -c2 grep -i errors 

Probablemente haya un mejor ejemplo que ese, pero realmente estoy interesado en saber cómo puedo enviar un command estándar que no lo retransmita y, al mismo time, evitar que el stdout sea ​​"silenciado", no estoy preguntando cómo archiva y grep parte de ella y cópiala en el portapapeles; los commands específicos no son tan importantes.

Además, no estoy preguntando cómo enviar esto a un file y stdout , esta puede ser una pregunta "duplicada" (lo siento), pero busqué algunas y solo pude encontrar otras similares que preguntaban cómo dividir entre stdout y file – y las respuestas a esas preguntas parecían ser una tee , que no creo que funcione para mí.

Finalmente, puede preguntar "¿por qué no simplemente hacer que pbcopy sea lo último en la cadena de tuberías?" y mi respuesta es 1) ¿qué sucede si quiero usarlo y todavía veo el resultado en la console? 2) ¿Qué ocurre si quiero usar dos commands que no stdout salida stdout después de procesar la input?

Ah, y una cosa más: me doy count de que podría usar una tee y un tubo con nombre ( mkfifo ) pero esperaba una forma de hacerlo en línea, concisamente, sin una configuration previa 🙂