跳到主要內容
Cypher's Practical Coding
正在準備工作環境...

管線串接:組合指令

前幾課你學了 sortgrepwc 等指令,每個都只做一件事。管線(pipe)的概念是:把多個「小工具」串起來,前一個的輸出自動餵給下一個當輸入,就像工廠的生產線。

你會學到什麼

  • | 把多個指令串成流程
  • 讀一行、過濾、排序的常見組合
  • 理解「輸出 → 輸入」的串接概念

管線是怎麼運作的?

想像一條生產線:

原料 → [清洗機] → [分類機] → [包裝機] → 成品

對應到 Shell 指令就是:

資料 → [grep 過濾] → [sort 排序] → [head 取前幾筆] → 結果

| 這個符號就是「接水管」,把左邊指令的輸出接到右邊指令的輸入。每個指令不需要知道資料從哪來,只管處理拿到的東西。

範例操作

實戰:多步驟資料處理

實際工作中,管線常用來快速分析文字資料。以下示範從一份訂單狀態清單中找出「最常出現的狀態」:

拆解這條管線:sort 先讓相同狀態相鄰 → uniq -c 計算每種數量 → sort -rn 按數字大到小排 → head -n 1 只取最多的那個。

常見管線組合

組合用途範例
sort | uniq排序後去重找出不重複的品項
sort | uniq -c | sort -rn統計並排名找出最熱門的品項
grep "關鍵字" | wc -l搜尋並計數有多少筆含關鍵字
ls | sort | head -n 5列出並取前幾筆快速瀏覽排序結果

小提醒:管線裡的指令順序很重要。sort | uniq 可以正確去重,但 uniq | sort 會先去除「相鄰」的重複(不相鄰的不管),結果可能不對。

AI 協作:學了這個,跟 AI 怎麼配合?

管線(|)是 Shell 的精華——把小工具串起來做大事。AI 可以幫你組合,你要能看懂流程。

你的人類優勢:

  • 你能描述你要的資料處理流程(「先找出、再排序、最後計數」)
  • 你能一步步拆開管線,確認每一步的輸出是否正確

可以這樣跟 AI 說:

幫我從 access.log 中找出所有 404 錯誤、按 URL 排序、去重後統計各 URL 出現幾次。用 grep + sort + uniq -c。

小練習

互動示範

DEMO 1可以修改程式碼試玩
DEMO 2可以修改程式碼試玩

挑戰任務

Task 1

取出家目錄排序後的第一筆項目

Task 2

把水果清單排序後計算每種數量(由多到少)

Task 3

找出 play/fruits.txt 中含 apple 的行數

BackTake the Exam →