Hay algunos comandos que filtran o actúan en la entrada, y luego la pasan como salida, creo que generalmente stdout, pero algunos comandos simplemente tomarán stdiny harán lo que hagan con ella, y no generarán nada.
Estoy más familiarizado con OS X, por lo que hay dos que se me ocurren de inmediato pbcopyy 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 a ambos stdouty a un archivo, entonces puedo usar el teecomando. Y sé un poco sobre eso xargs, pero no creo que eso sea lo que estoy buscando.
Quiero saber cómo puedo dividir stdoutpara ir entre dos (o más) comandos. 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 stdout a un comando que no lo retransmite y mientras evito que stdoutsea "silenciado": no estoy preguntando cómo hacer catun archivo y grepparte de él y cópielo en el portapapeles; los comandos específicos no son tan importantes.
Además, no estoy preguntando cómo enviar esto a un archivo y stdoutesta puede ser una pregunta "duplicada" (lo siento), pero busqué un poco y solo pude encontrar otras similares que preguntaban cómo dividir entre stdout y un archivo - y las respuestas a esas preguntas parecían ser tee, lo cual no creo que funcione para mí.
Finalmente, puede preguntar "¿por qué no hacer que pbcopy sea lo último en la cadena de tuberías?" y mi respuesta es 1) ¿qué pasa si quiero usarlo y aún así ver el resultado en la consola? 2) ¿Qué pasa si quiero usar dos comandos que no salen stdoutdespués de que procesan la entrada?
Ah, y una cosa más: me doy cuenta de que podría usar teeuna tubería con nombre ( mkfifo), pero esperaba que esto se pudiera hacer en línea, de manera concisa, sin una configuración previa :)