パイプを使いコマンドの標準出力を他のコマンドの標準入力へ渡す

広告

コマンドを実行した結果をさらに別のコマンドを使って処理したい場合があります。このような時に使用されるのがパイプです。書式は次の通りです。

コマンド1 | コマンド2

パイプは左側のコマンドが標準出力へ出力した内容を、右側のコマンドの標準入力へ渡します。右側のコマンドはその値を処理して標準出力へ実行した結果を出力します。

またパイプはつなげていくことが可能です。

コマンド1 | コマンド2 | コマンド3 | コマンド4

この場合、コマンド1の実行結果をコマンド2に渡し、そのコマンド2の実行結果をコマンド3へ渡します。

例えばファイルの内容を1画面ごとにいったん表示を停止させて表示したい場合には次のように記述します。

type filename | more

TYPEコマンドの実行結果をMOREコマンドに渡しています。

サンプル

では実際に試してみます。まず事前に用意したpref.txtのファイルの中身をTYPEコマンドを使って出力してみます。

p6-1

実行してみると次のように表示されます。

p6-2

ファイルに記述された文書の行が多いのでTYPEコマンドで表示すると画面に表示しきれずスクロールして表示されます。

それではパイプを使ってTYPEコマンドの実行結果をMOREコマンドに渡してみます。

p6-3

実行すると次のようにコマンドプロンプトの大きさに合わせていったん表示が止まります。

p6-4

このようにパイプを利用すれば、コマンドの実行結果を他のコマンドへ渡すことが可能です。

( Written by Tatsuo Ikura )