入力をフィルタリングするか、それに応じて動作し、それを出力に渡すコマンドがあります。一般的にそのような場合だと思いますstdout
。しかし、入力を受け入れ、stdin
何も実行し、何も出力しないコマンドもあります。
私はOS Xに最も慣れているので、すぐに思い浮かぶ2つのことは次のpbcopy
とおりですpbpaste
。 - システムクリップボードにアクセスする方法は次のとおりです。
とにかく、stdoutを取得して出力を2つのファイルにエクスポートしたい場合は、stdout
このコマンドを使用できることを知っていますtee
。私はそれについて何かを知っていますが、xargs
それが私が探しているものではないと思います。
stdout
2つ以上のコマンドを切り替えるために分割する方法を知りたいです。たとえば、
cat file.txt | stdout-split -c1 pbcopy -c2 grep -i errors
おそらくそれより良い例があるでしょう。しかし、「ミュート」を避けながら、中継しないコマンドにstdoutを送信する方法を知りたいです。ファイルとその一部stdout
を送信する方法を尋ねるものではありません。クリップボードにコピー - 特定のコマンドはそれほど重要ではありません。cat
grep
また、ファイルに送信する方法を尋ねるものではありませんstdout
。 「重複」の質問かもしれません(申し訳ありません)。しかし、検索をやってみると、stdoutとファイルを分割する方法を尋ねる同様の質問だけが見つかりました。 - 回答 この質問にはtee
、私はそれが私には効果がないと思います。
最後に、「パイプラインチェーンの最後のエントリとしてpbcopyを作成するのはどうですか?」と尋ねることができます。私の答えは1)これを使いたいのですが、コンソールで出力を見続けるにはどうすればよいですか? 2)入力を処理した後に出力されない2つのコマンドを使用したい場合はstdout
どうすればよいですか?
tee
ああ、もう1つ - 名前付きパイプ()を使用できることを知っていますが、事前mkfifo
設定を必要とせずにこれをインラインで簡潔に実行する方法があることを望みました。 :)
ベストアンサー1
代替項目を使用tee
して処理できます。
cat file.txt | tee >(pbcopy) | grep errors
これにより、すべての出力がに送信され、cat file.txt
コンソールからのみpbcopy
結果を取得できます。grep
tee
このセクションには複数のプロセスを配置できます。
cat file.txt | tee >(pbcopy) >(do_stuff) >(do_more_stuff) | grep errors