正在準備工作環境...
管線與組合技:一行指令完成資料分析
在 shell-101 你學過基本的 | 管線。這一課我們要把它用在真實場景——用一行指令完成「找出今天銷售額前 10 名商品」這種日常分析。
你會學到什麼
- 複合管線:多個指令串接
grep進階用法(-i忽略大小寫、-v排除、-c計數)sort進階用法(-t分隔符、-k指定欄位、-n數字排序、-r反轉)uniq -c統計出現次數head/tail取前後幾筆wc -l計算行數xargs把輸入轉成指令參數
觀念速記
- 管線的精髓:每個指令只做一件事,串起來就能做大事。
- 處理 CSV 時,
sort -t',' -k3 -n= 用逗號分隔、取第 3 欄、數字排序。 xargs是管線的「橋接器」——把文字輸出變成下一個指令的參數。
範例操作
先準備一份電商銷售記錄:
實戰管線組合
xargs:把輸出變成參數
常見管線組合速查
| 組合 | 用途 |
|---|---|
tail -n +2 | grep "關鍵字" | 跳過標題,搜尋特定資料 |
cut -d',' -f2 | sort | uniq -c | sort -rn | CSV 特定欄位統計排行 |
sort -t',' -k4 -nr | head -n 10 | CSV 依數字欄位取 Top 10 |
grep -v "排除" | wc -l | 排除特定行後計數 |
sort -u | 排序 + 去重(等同 sort | uniq) |
AI 協作:學了這個,跟 AI 怎麼配合?
管線組合技是 Shell 最強大的地方。你描述需求,AI 幫你組合,你來驗證結果。
你的人類優勢:
- 你知道 CSV 的欄位意義(第 3 欄是類別、第 4 欄是金額)
- 你能判斷排序和篩選結果是否合理
可以這樣跟 AI 說:
我有一份 CSV 銷售記錄,格式是 date,product,category,amount,qty。幫我用一行 shell 指令找出「日用品」類別中,銷售數量(第 5 欄)最高的前 3 名商品。
小練習
互動示範
DEMO 1可以修改程式碼試玩
DEMO 2可以修改程式碼試玩
DEMO 3可以修改程式碼試玩
挑戰任務
Task 1
用 printf 產生五行水果名(apple, banana, apple, cherry, banana),統計每種出現次數並由多到少排序
Task 2
用 printf 產生三行 CSV(A,100\nB,250\nC,80),依第 2 欄數字由大到小排序,取出第一行
Task 3
用 printf 產生五行文字(含兩行有 error),用 grep 計算含 error 的行數
← BackNext Lesson →