grep 查詢文字檔內容

平常寫程式或做作業常要翻 log 檔案。檔案太大時根本看不完。這段 Python 腳本可以幫上忙。它像是一個客製化的 grep 工具。支援關鍵字高亮顯示。還能決定要看關鍵字前後幾行內容。這對分析程式報錯很有幫助。

如何開始使用

下載程式碼:
https://github.com/max32002/MaxFontScripts/blob/master/grep.py

確保你的電腦已經安裝了 Python 3 環境。你可以透過終端機或命令提示字元來執行它。

基本指令格式

python grep.py 關鍵字 路徑

你可以加上這些參數:

  • -b 數字:顯示關鍵字前面幾行。
  • -a 數字:顯示關鍵字後面幾行。
  • -i:忽略英文字母大小寫。
  • -l:把找到的關鍵字標上顏色。
  • -E:開啟正規表示法搜尋模式。
  • -ext .txt:搜尋指定副檔名。
  • -o 檔名:將搜尋結果存成檔案。

實際操作範例

假設要找 logs 資料夾內所有包含 ERROR 的行。並且要看錯誤發生的前 2 行與後 2 行。還要標記顏色。

python grep.py ERROR ./logs -b 2 -a 2 -l

如果要用正規表示法找特定格式。例如找 IP 位址。並限制只找 .txt 檔案。

python grep.py "[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+" ./data -E -ext .txt

如果想把搜尋結果存起來。方便之後寫報告用。

python grep.py "Login Failed" auth.log -o result.txt

這套工具邏輯很單純。不用安裝複雜的套件。做實驗數據分析或是 debug 都很實用。