Es gibt einige Befehle, die Eingaben filtern oder bearbeiten und sie dann als Ausgabe weitergeben, denke ich normalerweise stdout
- aber einige Befehle nehmen einfach das stdin
und tun, was sie damit tun, und geben nichts aus.
Ich kenne mich am besten mit OS X aus und so gibt es zwei, die mir sofort einfallen pbcopy
und pbpaste
- die Mittel zum Zugriff auf die Systemzwischenablage.
Jedenfalls weiß ich, dass ich stdout
den tee
Befehl verwenden kann , wenn ich stdout nehmen und die Ausgabe spucken möchte, um auf beide und eine Datei zuzugreifen. Und ich weiß ein wenig darüber xargs
, aber ich glaube nicht, dass ich danach suche.
Ich möchte wissen, wie ich stdout
zwischen zwei (oder mehr) Befehlen aufteilen kann . Zum Beispiel:
cat file.txt | stdout-split -c1 pbcopy -c2 grep -i errors
Es gibt wahrscheinlich ein besseres Beispiel als dieses, aber ich bin wirklich daran interessiert zu wissen, wie ich stdout an einen Befehl senden kann, der es nicht weiterleitet, und dabei stdout
nicht "stumm" geschaltet wird - ich frage nicht, wie cat
und grep
Teil davon und kopieren Sie es in die Zwischenablage - die spezifischen Befehle sind nicht so wichtig.
Außerdem - ich frage nicht, wie ich das an eine Datei senden soll, und stdout
- dies ist möglicherweise eine "doppelte" Frage (sorry), aber ich habe einige gesucht und konnte nur ähnliche finden, die gefragt haben, wie man zwischen stdout und einer Datei aufteilt - und die Antworten auf diese Fragen schienen zu sein tee
, von denen ich nicht glaube, dass sie für mich funktionieren.
Zum Schluss fragen Sie sich vielleicht, warum Sie pbcopy nicht zum letzten Element in der Pipe-Kette machen sollten. und meine Antwort ist 1) was ist, wenn ich es verwenden und trotzdem die Ausgabe in der Konsole sehen möchte? 2) Was ist, wenn ich zwei Befehle verwenden möchte, die nicht ausgegeben werden, stdout
nachdem sie die Eingabe verarbeitet haben?
Oh, und noch etwas - mir ist klar, dass ich tee
eine Named Pipe ( mkfifo
) verwenden kann, aber ich hatte gehofft, dass dies ohne vorherige Einrichtung inline erfolgen kann :)