使用指南

線上Linux 文字工具 — grep · awk · sed

貼上日誌後用 grep 篩選、awk 擷取欄位、sed 取代,以 sort、uniq 統計重複項。在支援選項範圍內串接管線。

使用方式

  1. 將日誌或文字貼到「原始文字」,此輸入框支援多行。
  2. 在單行「指令」框輸入 grep 'ERROR',或用管線連接:grep 'ERROR' | sort | uniq -c。
  3. 點擊執行或在指令框按 Ctrl+Enter(Mac 為 ⌘+Enter)。編輯不會自動執行,執行時可停止。
  4. 查看結果,使用放大檢視或複製完整輸出。原始輸入保持不變。
  5. 修改原文或指令後重新執行。在此之前不能複製或放大舊結果。各重設圖示僅清空對應輸入並恢復焦點。

輸入與輸出範例

統計重複錯誤日誌

輸入範例

原始文字:
ERROR host api
INFO host web
ERROR host api
ERROR host worker

指令:
grep 'ERROR' | sort | uniq -c

結果範例

      2 ERROR host api
      1 ERROR host worker

背景知識

標準輸入、輸出和管線
標準輸入是指令讀取的資料,標準輸出是結果。管線(|)將前一個指令的輸出傳給下一個。grep 篩選後的行才進入 awk,因此順序會影響結果。
grep:搜尋行
選取符合條件的行。預設使用正規表示式,-F 按字面字串搜尋,-E 使用擴充正規表示式。grep -E 'ERROR|WARN' 中引號內的 | 表示「或」,不是管線。
awk:欄位、條件和統計
將行拆成欄位、依條件篩選並計算總和。預設以空白分隔,$1 是第一欄、$3 是第三欄、$0 是整行。-F 改變分隔符,END 可輸出最後統計。
sed:取代和刪除行
s/尋找/取代/g 取代行內所有符合項目,/條件/d 從輸出刪除符合行。sed '/DEBUG/d' 會排除 DEBUG 行。
sort 與 uniq:排序和重複統計
sort -n 按數值排序,-r 反向。uniq 只合併相鄰相同行,因此統計全部重複時先 sort。uniq -c 加上次數,sort -nr 按次數由大到小排序。
cut 與 tr:擷取和字元轉換
cut 按位置或分隔欄位擷取,例如 cut -d ',' -f 1。tr 轉換或刪除字元,tr a-z A-Z 將 ASCII 字母轉為大寫。
head、tail 與 wc:部分檢視和計數
head -n 3 顯示前三行,tail -n 3 顯示後三行。wc -l 統計換行符、-w 統計單字、-c 統計位元組。最後一行沒有換行時,wc -l 可能少於可見行數。
引號和正規表示式
含空白或管線的表示式要加引號。awk 使用單引號,例如 awk '{print $1, $3}'。引號內的管線不會分隔指令,. 和 * 等字元具有正規表示式的特殊意義。

注意事項

常見問題

這個線上工具適合哪些工作?

貼上日誌後用 grep 篩選、awk 擷取欄位、sed 取代,以 sort、uniq 統計重複項。在支援選項範圍內串接管線。

能直接使用終端機指令嗎?

僅限支援的指令與選項。將 grep ERROR app.log 改成 grep ERROR,並將檔案內容貼到原始文字。這裡不是完整 shell 或 GNU/Linux 環境。

sed 會改變原文嗎?

刪除和取代只影響輸出,不修改輸入或 PC、伺服器檔案,也不會寫入新檔案。複製結果後自行使用。

編輯後結果為何沒有變化?

需要手動點擊執行或按 Ctrl+Enter。舊結果仍顯示,但重新執行之前停用複製和放大。

沒有符合項目或耗時很長怎麼辦?

grep 不符合時得到空結果。長任務可停止,或達到10秒限制後結束。縮小條件或減少資料再試。

uniq -c 為什麼重複顯示相同值?

uniq 只合併相鄰相同行。用 sort | uniq -c 統計全部重複,再用 sort -nr 將次數由大到小排列。

Baro Work無須登入。輸入與結果不會儲存於網站伺服器或瀏覽器儲存空間。對外傳送資料的方式請參閱翻譯與DNS說明。

在首頁使用全部工具 →