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

管線與組合技:一行指令完成資料分析

在 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 -rnCSV 特定欄位統計排行
sort -t',' -k4 -nr | head -n 10CSV 依數字欄位取 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 →