Linux -grep一般使用

1.基本語法

grep [option] pattern file 

grep [-acinv] [--color=auto] 'key' filename

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  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) 多條件組合交集

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

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

 

3.多文件grep

1) 當前目錄下grep文件

grep 'key'  test1.txt test2.txt

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

grep -r 'key' /ss/*

 

4.demo

   實例1:查找進程

  ps -ef | grep svn

  實例2:查找指定進程個數

  ps -ef | grep svn -c 或者 ps -ef | grep -c svn 

  實例3:從文件中讀取關鍵字進行搜索

  cat test.txt | grep -f test2.txt

  實例5:從文件中查找關鍵詞,並且對關鍵字加上顏色顯示

  grep  'test' --color test.txt

   grep  -nf -C5 'CN_YAG1004' /*info.log

  實例6:從多個文件中查找關鍵詞

  grep 'test' test1.txt test2.txt

  實例7:找出以g開頭的行內容

  cat test.txt | grep ^u

  實例8:輸出非u開頭的行內容

  cat test.txt | grep ^[^u]

  實例9:輸出以hat結尾的行內容

  cat test.txt | grep hat$

  實例10:顯示包含9或者nine字符的內容行

  cat test.txt | grep -E '9|nine'

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章