パイプとは
CoddyのTerminalジャーニー「基礎」セクションの一部。レッスン 43/82。
リダイレクトを使うと出力をファイルに送れますが、あるコマンドの出力を別のコマンドに直接送信したい場合はどうすればよいでしょうか?そこでパイプの出番です。
パイプは、|記号を使用して、あるコマンドの標準出力を別のコマンドの標準入力に接続します。中間結果をファイルに保存する代わりに、dataはコマンド間を直接流れます。
cat names.txt | sortこれは cat names.txt の出力を受け取り、sort に直接渡します。一時ファイルを作成せずに、並べ替えられた結果が画面に表示されます。
パイプがなければ、複数の手順が必要になります:
cat names.txt > temp.txt
sort < temp.txt
rm temp.txtパイプは、1つの簡潔でエレガントなコマンドで同じことを実現します。パイプラインの各区間のようにコマンドを接続するものだと考えてください。データが一方の端から入り、最終的な出力に到達するまで、各コマンドを順番に通過していきます。
チャレンジ
簡単パイプを使用してfruits.txtの内容を読み取り、1つのコマンドでアルファベット順に並べ替えてください。
次の処理を行うコマンドを実行してください:
catを使用してfruits.txtを読み取る|記号を使用して出力をsortにパイプする
ヒント:形式は
cat filename | sortです。catの出力は中間ファイルを必要とせず、直接sortに渡されます。
自分で試してみよう
このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。
基礎のすべてのレッスン
自分で練習してみよう: Terminalプレイグラウンド