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