Il y a des commandes qui filtrent ou agissent en entrée, puis les transmettent en sortie, je pense en général stdout
, mais certaines commandes prennent juste le stdin
et font ce qu’elles font, sans rien sortir.
Je suis plus familier avec OS X et donc il y a deux qui me viennent immédiatement à l' esprit sont pbcopy
et pbpaste
- qui sont des moyens d'accès au presse - papiers du système.
Quoi qu'il en soit, je sais que si je veux prendre stdout et cracher la sortie pour aller aux deux stdout
et à un fichier, je peux utiliser la tee
commande. Et j'en connais un peu xargs
, mais je ne pense pas que ce soit ce que je recherche.
Je veux savoir comment je peux me séparer stdout
pour aller entre deux commandes (ou plus). Par exemple:
cat file.txt | stdout-split -c1 pbcopy -c2 grep -i errors
Il y a probablement un meilleur exemple que celui-là, mais je suis vraiment intéressé à savoir comment envoyer stdout à une commande qui ne le relayera pas et tout en évitant stdout
d'être "muet" - je ne vous demande pas comment créer cat
un fichier; grep
une partie de celui-ci et copiez-le dans le presse-papiers - les commandes spécifiques ne sont pas si importants.
Aussi - je ne demande pas comment envoyer cela dans un fichier et stdout
- cela peut être une question "en double" (désolé), mais j'en ai cherché et je n'ai trouvé que des questions similaires qui demandaient comment diviser entre stdout et un fichier - et les réponses à ces questions semblaient être tee
, ce qui, à mon avis, ne fonctionnera pas pour moi.
Enfin, vous pouvez vous demander "pourquoi ne pas simplement faire de pbcopy la dernière chose dans la chaîne de tubes?" et ma réponse est 1) si je veux l’utiliser et voir toujours la sortie dans la console? 2) Que faire si je veux utiliser deux commandes qui ne sortent pas stdout
après avoir traité l'entrée?
Oh, et encore une chose - je me rends compte que je pourrais utiliser tee
un tube nommé ( mkfifo
) mais j'espérais pouvoir le faire en ligne, de manière concise, sans configuration préalable :)