書式
COMMAND1 ( COMMAND2 | psub [-f] [-s SUFFIX])

概要

POSIXのシェルは
プロセス置換と呼ばれる
コマンド置換パイプライン
混ぜた構文を持っています。

プロセス置換は、
コマンド置換と同じように、
COMMAND2 の出力を
COMMAND1 に送信します。

ただ異なる点は、
出力はコマンドライン引数経由ではなくて
名前付きパイプ経由で送信されるところです。

名前付きパイプのファイル名は
COMMAND1 の引数として渡されます。

psub コマンドと
通常のコマンド置換を
組み合わせれば、

プロセス置換と
同等の機能になります。

psub
-f あるいは
--file スイッチを付ければ、

psubCOMMAND1 との通信に
名前付きパイプではなくて
通常のファイルを使います。

これは、
大容量のデータを
扱うときに
とても遅くなるでしょう。

けれども、
通常のファイルであるため、
ストリームをseekできる
メリットがあります。

-s あるいは
--suffix スイッチを付ければ、
ファイル名に拡張子を設定します。

実行例

$ diff (sort a.txt | psub) (sort b.txt | psub)
# ソートされたa.txtとソートされたb.txtのdiffを出力する
$ source-highlight -f esc (cpp main.c | psub -s .c)
# C言語の前処理を終えたmain.cをハイライトする

最後までお読みいただき、ありがとうございました。参考になれば嬉しいです。