1. 程式人生 > 實用技巧 >Linux檢視日誌-grep

Linux檢視日誌-grep

1.基本語法

grep [引數] 關鍵字 檔案 
  1. 引數選項:

    -n 結果顯示行號
    -c 關鍵字匹配的行次數
    -i 關鍵字忽略大小寫
    -v 反向選擇
    -e 後跟一個正則表示式
    -m10 查詢到10次就停止繼續查詢
    -A10 顯示關鍵字所在行和後10行
    -B10 顯示關鍵字所在行和前10行
    -C10 顯示關鍵字所在行和前後10行
    --color=auto 關鍵字高亮顯示(多個引數一起使用,color屬性需要放最後,注意是兩個短線)

  2. grep 可以跟正則,詳細資訊

    grep -n t[ea]st info.log 查詢test或者tast ([]一個字元)
    grep -n [^g]oo 查詢oo但不包含goo的行 (^在[]內表示反向選擇)
    grep -n [^a-z]oo 查詢oo但不包含小寫字母+oo的行 ([a-z] 一個小寫字母)
    grep -n [0-9] 查詢包含數字的行 ([0-9] 一個數字)
    grep -n ^the 查詢the開頭的行 (^不在[]內表示定位到行首)
    grep -n[

    a-zA-Z] 查詢不是以字母開頭的行 (^反向和定位)
    grep -n .$ 查詢以.結尾的行 (\轉義 $結尾)
    grep -n ^$ 找出空白行 (^$ 空白行)
    grep -n g..d 查詢g??d的字串的行(.表示一個)
    grep -n ooo* 查詢至少包含兩個oo的行(* 表示重複前邊一個字元0-n次)
    grep -n goog 查詢g開頭g結尾且中間至少包含一個o的行
    grep -n g.
    g 查詢g開頭g結尾且中間字元可有可無的行 (.*表示沒有或有任意個字元)
    grep -n o{2} 查詢oo的行({2} 前邊字元重複2次,{}轉義)

2.多關鍵字grep

  1. 多條件或

    grep -E '關鍵字1|關鍵字2|關鍵字3' info.log

匹配關鍵字1或關鍵字2或關鍵字3到任意一個,展示該行

  1. 多條件與

    grep '關鍵字1' info.log | grep '關鍵字2' | grep '關鍵字3'

匹配到關鍵字1和關鍵字2和關鍵字3全部,展示該行

3.多檔案grep

  1. 當前目錄下grep檔案

    grep 關鍵字 *

  2. 當前目錄下grep資料夾以及資料夾下所有檔案(遞迴)

    grep -r 關鍵字 *

3.demo

  1. 在info.log 模糊查詢關鍵字(訂單號:5a8f4709db9d493b),並顯示匹配行上下10行,以及行號

    grep -n -C10 '訂單號:5a8f4709db9d493b' info.log