4.14.3. パイプ - | -


4.14.3. パイプ - | -

【コマンド説明】
パイプは複数のコマンドをつなげる機能です。前のコマンドの標準出力を次のコマンドの標準入力につなげます。パイプを利用すると複数のコマンドを一回の操作で実行することができます。

パイプでよく利用する代表的なコマンドの一例として以下の様なコマンドがあります。

  • less ファイルを見るためのコマンドですが、ファイル指定がない場合には、標準入力のデータを取り込んで表示します。
  • wc ファイル内のバイト数、単語数および行数を集計し表示します。
  • sort データの並べ替えを行います。

それでは実際にパイプ機能を利用してみましょう。

【動画説明】
/etcをlsコマンドでリスト表示してみます。-lオプションをつけてファイルの詳細まで表示します。

# ls –l /etc

/etcにはファイルが多くあり、1つの画面には収まりきらないため見づらくなってしまいました。
パイプ機能でlessコマンドと組み合わせます。画面がスクロールできるため見やすくなります。

# ls –l /etc | less

次にwcコマンドを使ってみます。-lオプションで行数を表示します。

# ls -l /etc | wc -l

最後にsortコマンドを使用してみましょう。-fオプションで大文字小文字関係なくアルファベット順に表示します。今回はlsコマンドにはオプションはつけません。画面に収まりきらないため、さらにlessコマンドも組み合わせます。

# ls /etc/ | sort -f | less

【問題】
1. wcコマンドとパイプ機能を組み合わせて/bin以下のコマンドがいくつあるか確認してみましょう。
2. パイプ機能を利用して、/etc以下のファイル一覧をコンソールに出力し、かつ/tmp/etclist.txtというファイルにも保管して下さい。

ヒント:teeコマンド(標準入力から読んだ内容を標準出力とファイルとに書き出す)を使用します。