next up previous
: フィルター : UNIX のテキスト・ファイル処理 : UNIX のテキスト・ファイル処理

標準入出力のリダイレクション、パイプ

UNIX において標準入出力のリダイレクション、パイプは重要な機能である。

$\bullet$
UNIX システムでは、 各プロセス1は、 標準入力 (standard input)、 標準出力 (standard output) と呼ばれるデー タの出入口を持つ。
$\bullet$
例えば C 言語の scanf(), getchar() 等は 標準入力 (stdin) から入力し、 printf(), putchar() は標準出力 (stdout) に出力する。
$\bullet$
通常は次のように結びつけられている:
$\bullet$ 標準入力はキーボードからの入力に
$\bullet$ 標準出力は画面への出力に

この結合は簡単に変更できる (標準入出力のリダイレクション と呼ぶ)。
$\bullet$
コマンド > ファイル名 とすると、 コマンドの標準出力を (画面の代わりに) 指定したファイルに書き出す。
\begin{itembox}[l]{cal コマンドの出力を {\tt cal.out} にリダイレクト}
\footnotes...
...8 19 20 21 22 23
24 25 26 27 28 29 30\end{verbatim}{\tt tango21\%}
\end{itembox}
$\bullet$
コマンド < ファイル名 とすると、 (キーボードの代わりに) 指定したファイルからコマンドの標準入力に読み込む 2
$\bullet$
コマンド1 | コマンド2 とすると、 コマンド1 の標準出力をコマンド2 の標準入力に渡すことが出来る。つまり

  prog1 > datafile
  prog2 < datafile
のようにファイルを介して prog1 の出力を prog2 に渡す代わりに

  prog1 | prog2
で済ますことが出来る。この機能をパイプと呼ぶ。 実例は以下で (山のように) たくさん見せる。



Masashi Katsurada 平成13年6月7日