1.基本語法
grep [參數] 關鍵字 文件
-
參數選項:
-n 結果顯示行號
-c 關鍵字匹配的行次數
-i 關鍵字忽略大小寫
-v 反向選擇
-e 后跟一個正則表達式
-m10 查找到10次就停止繼續查找
-A10 顯示關鍵字所在行和后10行
-B10 顯示關鍵字所在行和前10行
-C10 顯示關鍵字所在行和前后10行
--color=auto 關鍵字高亮顯示(多個參數一起使用,color屬性需要放最后,注意是兩個短線) -
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
-
多條件或
grep -E '關鍵字1|關鍵字2|關鍵字3' info.log
匹配關鍵字1或關鍵字2或關鍵字3到任意一個,展示該行
-
多條件與
grep '關鍵字1' info.log | grep '關鍵字2' | grep '關鍵字3'
匹配到關鍵字1和關鍵字2和關鍵字3全部,展示該行
3.多文件grep
-
當前目錄下grep文件
grep 關鍵字 *
-
當前目錄下grep文件夾以及文件夾下所有文件(遞歸)
grep -r 關鍵字 *
3.demo
-
在info.log 模糊查詢關鍵字(訂單號:5a8f4709db9d493b),並顯示匹配行上下10行,以及行號
grep -n -C10 '訂單號:5a8f4709db9d493b' info.log