入力と出力を同時にリダイレクト

広告

ここまでのページで確認したように標準入力への入力をファイルからに設定する場合は次のような書式を使用します。

コマンド < ファイル名

また標準出力からの出力をファイルに設定する場合は次のような書式を使用します。

コマンド > ファイル名

この二つを組み合わせ、ファイルからコマンドへ入力しコマンドの実行結果を別のファイルへ出力する場合は次のように記述します。

コマンド < 入力ファイル名 > 出力ファイル名

上記では入力ファイルからコマンドへ入力が行われ、コマンドの実行結果が出力ファイルへ出力されます。

例えばSORTコマンドに対してaddress.txtのファイルの内容を入力として読み込み、結果の出力をresult.txtへ出力する場合には次のように入力します。

sort < address.txt > result.txt

このように標準入力と標準出力に対するリダイレクトを同時に使用することができます。

サンプル

では実際に試してみます。次のようなテキストファイルを用意しました。

p5-1

このファイルをリダイレクトを使いSORTコマンドへ標準入力として渡します。 そして実行結果をリダイレクトを使い標準出力を通してファイルへ出力します。

p5-2

コマンドを実行すると標準出力は画面ではなくファイルに設定してあるため、画面上には何も表示されません。

p5-3

実行結果は標準出力のリダイレクトとして設定したresult.txtファイルに出力されています。

p5-4

address.txtファイルの内容がソートされた結果がresult.txtファイルに保存されていることが確認できます。

( Written by Tatsuo Ikura )