Ci sono alcuni comandi che filtrano o agiscono sull'input, e poi lo passano come output, penso di solito a stdout
- ma alcuni comandi prenderanno semplicemente stdin
e faranno tutto ciò che fanno con esso, e non produrranno nulla.
Conosco molto bene OS X e quindi ce ne sono due che mi vengono subito in mente pbcopy
e pbpaste
che sono mezzi per accedere agli Appunti di sistema.
Comunque, so che se voglio prendere stdout e sputare l'output per andare su entrambi stdout
e su un file, allora posso usare il tee
comando. E ne so un po ' xargs
, ma non credo sia quello che sto cercando.
Voglio sapere come posso dividere stdout
per passare tra due (o più) comandi. Per esempio:
cat file.txt | stdout-split -c1 pbcopy -c2 grep -i errors
Probabilmente c'è un esempio migliore di quello, ma sono davvero interessato a sapere come posso inviare stdout a un comando che non lo inoltra e pur continuando stdout
a non essere "disattivato" - non sto chiedendo come fare cat
un file e grep
parte di esso e copiarlo negli Appunti: i comandi specifici non sono così importanti.
Inoltre - non sto chiedendo come inviarlo a un file e stdout
- questa potrebbe essere una domanda "duplicata" (scusate) ma ho fatto un po 'di ricerca e ho trovato solo quelli simili che chiedevano come dividere tra stdout e un file - e le risposte a quelle domande sembravano essere tee
, che non credo funzioneranno per me.
Infine, potresti chiedere "perché non rendere pbcopy l'ultima cosa nella catena di tubi?" e la mia risposta è 1) cosa succede se voglio usarlo e vedere ancora l'output nella console? 2) cosa succede se voglio usare due comandi che non vengono emessi stdout
dopo che hanno elaborato l'input?
Oh, e un'altra cosa - mi rendo conto di poter usare tee
e un nome pipe ( mkfifo
) ma speravo in un modo che potesse essere fatto in linea, in modo conciso, senza una configurazione precedente :)