正在準備工作環境...
管線串接:組合指令
前幾課你學了 sort、grep、wc 等指令,每個都只做一件事。管線(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 →