- 書式
- COMMAND1 ( COMMAND2 | psub [-f] [-s SUFFIX])
概要
POSIXのシェルは
プロセス置換と呼ばれる
コマンド置換 と パイプライン を
混ぜた構文を持っています。
プロセス置換は、
コマンド置換と同じように、
COMMAND2
の出力を
COMMAND1
に送信します。
ただ異なる点は、
出力はコマンドライン引数経由ではなくて
名前付きパイプ経由で送信されるところです。
名前付きパイプのファイル名は
COMMAND1
の引数として渡されます。
psub
コマンドと
通常のコマンド置換を
組み合わせれば、
プロセス置換と
同等の機能になります。
psub
に
-f
あるいは
--file
スイッチを付ければ、
psub
は COMMAND1
との通信に
名前付きパイプではなくて
通常のファイルを使います。
これは、
大容量のデータを
扱うときに
とても遅くなるでしょう。
けれども、
通常のファイルであるため、
ストリームを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をハイライトする
最後までお読みいただき、ありがとうございました。参考になれば嬉しいです。