Menu
Coddy logo textTech

複数のコマンドの連結

CoddyのTerminalジャーニー「基礎」セクションの一部 — レッスン 45/82。

2つのコマンドを接続するだけに限定されません。パイプを使用すると、必要な数だけコマンドを連結でき、それぞれが前のコマンドの出力を処理します。

単にさらに | 記号を追加して、パイプラインを拡張します:

cat data.txt | sort | head -5

これはファイルを読み込み、すべての行をアルファベット順にソートし、次に最初の5つの結果のみを表示します。データは各コマンドを順番に左から右へと流れます。

ソートされた一意のエントリを見つける実用的な例を次に示します:

cat names.txt | sort | uniq

ファイルの内容が最初にソートされ(これにより重複がまとめられます)、次に uniq が連続する重複行を削除します。ここでは順序が重要です。uniq は隣接する重複のみを削除するため、最初にソートを行う必要があります。

さらに多くのステージを追加できます。ユニークな名前がいくつ存在するかを数えるには:

cat names.txt | sort | uniq | wc -l

各パイプは、別の変換ステップを追加します。より長いパイプラインを構築するときは、各コマンドが入力として何を必要とし、出力として何を生成するかを考えてください。あるコマンドの出力形式は、次のコマンドの入力として意味をなすものでなければなりません。

challenge icon

チャレンジ

簡単

ファイル visitors.txt には、重複を含む訪問者の名前のリストが含まれています。4つのコマンドをパイプラインで繋ぎ、ユニークな訪問者が何人いるかカウントしてください。

以下の処理を行う単一のコマンドを実行してください:

  • cat を使用して visitors.txt を読み込む
  • sort にパイプして、名前をアルファベット順に並べ替える
  • uniq にパイプして、重複するエントリを削除する
  • wc -l にパイプして、ユニークな名前の数をカウントする

ヒント: 複数の | 記号を使用して、4つすべてのコマンドを連結します。uniq は隣接する重複のみを削除するため、その前にソートを行う必要があることに注意してください。

自分で試してみよう

ターミナル
quiz icon腕試し

このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。

基礎のすべてのレッスン