これは実際にはパイピングではなく、入力ストリームと出力ストリームのリダイレクトです。
パイピングは、あるプロセスの標準出力を取得し、それを別のプロセスの標準入力に接続します。たとえば、次のようになります。
seq 1 5 | sort -r
これは、1 から 5 までの数字を (その順序で) 生成し、次のトランスクリプトのように逆の順序で並べ替えます。
pax> seq 1 5
1
2
3
4
5
pax> seq 1 5 | sort -r
5
4
3
2
1
シーケンス:
prog <infile >outfile
prog
プロセスでプログラムを実行し、ファイルから標準入力を取得して、標準出力をinfile
ファイルに送信しoutfile
ます。関与するプロセスは 1 つだけです。
「標準入力の代わりにファイル b のデータをプログラム a への入力に使用し、プログラム a の出力を標準出力の代わりにファイル c に書き込む」には、次のようにします。
a <b >c
あなたが持っているのとまったく同じです。私の例では、リダイレクト文字 (<
または) とファイル名の間にスペースがないことに注意してください。「出力をファイルに送信する」ことを意味する>
ため、これにより関係が明確になると思います。>xyzzy
xyzzy
何をするかについての誤った主張a < b > c
(「ファイルbのデータを標準入力の代わりにプログラムaへの入力に使用し、プログラムbの出力を標準出力の代わりにファイルcに書き込む」)は、個別のコマンドに適しています:
a <b ; b >c
a
とb
プログラムの間に実際の接続はありません。