パイプを介してシェルの複数のファイルに接続する

パイプを介してシェルの複数のファイルに接続する

私は大量のデータを生成するアプリケーションを持っていますが、そのアプリケーションをディスクに保存したくありません。アプリケーションは主に使用したくないデータを出力しますが、別々のファイルに分割する必要がある有用な情報セットを出力します。たとえば、次のような出力が提供されます。

JUNK
JUNK
JUNK
JUNK
A 1
JUNK
B 5
C 1
JUNK

次のようにアプリケーションを3回実行できます。

./app | grep A > A.out
./app | grep B > B.out
./app | grep C > C.out

これは私が望むものを得るのに時間がかかるでしょう。また、すべての出力を単一のファイルにダンプして解析したくありません。

上記の3つのタスクを組み合わせてアプリケーションを一度だけ実行しても、3つの個別の出力ファイルを取得する方法はありますか?

ベストアンサー1

お持ちの場合ティー

./app | tee >(grep A > A.out) >(grep B > B.out) >(grep C > C.out) > /dev/null

(からここ)

プロセス交換について)

おすすめ記事