Linux查看日誌-grep

1.基本語法

grep [參數] 關鍵字 文件

1) 參數選項:正則表達式

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

2) grep 能夠跟正則,詳細信息code

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  goo*g             查詢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到任意一個,展現該行字符串

2) 多條件與ast

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

匹配到關鍵字1和關鍵字2和關鍵字3所有,展現該行test

3.多文件grep

1) 當前目錄下grep文件語法

grep 關鍵字  *

2) 當前目錄下grep文件夾以及文件夾下全部文件(遞歸)grep

grep -r 關鍵字 *

3.demo

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

grep -n -C10 '訂單號:5a8f4709db9d493b' info.log
相關文章
相關標籤/搜索