天天看點

小白入門必知必會-Linux常用指令詳解-grep指令

作者:霸都運維

一 指令介紹

1.1 功能

grep指令是一種強大的文本搜尋工具,它能使用正規表達式搜尋文本,并把比對的行列印出來。用于過濾/搜尋的特定字元。可以把grep了解成字元查找工具,可使用正規表達式能配合多種指令使用,使用上十分靈活。

grep與sed、awk合稱為Linux中的三劍客,grep速度最快。

1.2 文法

grep [參數]

常用選項

  • -Ax:在輸出的時候包含結果所在行之後的指定行數,這裡指之後的x行,A:after
  • -Bx:在輸出的時候包含結果所在行之前的指定行數,這裡指之前的x行,B:before
  • -Cx:在輸出的時候包含結果所在行之前和之後的指定行數,這裡指之前和之後的x行,C:context
  • -c:統計比對到的行數,不是次數
  • -E:使用擴充正規表達式,而不是基本正規表達式,在使用-E選項時,相當于使用egrep
  • -e:實作多個選項的比對,邏輯or關系
  • -w:精确比對,隻顯示全字元合的列
  • -i:不區分大小寫
  • -n:顯示行号(哪些行包含指定的字元串)
  • -o:隻顯示符合條件的字元串,但是不整行顯示,每個符合條件的字元串單獨顯示一行
  • -v:輸出不帶關鍵字的行(反向查詢,反向比對)
  • -q:不顯示任何資訊
  • --color高亮顯示(centos6需要加這個選項,centos7不需要,有别名)

二 使用場景

2.1 案例1

統計符合條件的總行數

grep -i -c "job_name" prometheus.yml

小白入門必知必會-Linux常用指令詳解-grep指令

2.2 案例2

隻顯示比對到的關鍵字,而不是将整行輸出

grep -o "job_name" prometheus.yml

小白入門必知必會-Linux常用指令詳解-grep指令

注意:-o選項會把每個比對到的關鍵字都單獨顯示在一行中進行輸出

grep -i -n -o "123" testgrep

小白入門必知必會-Linux常用指令詳解-grep指令

2.3 案例3

找到符合條件的行的同時,還要顯示之前的行,-B選項的後面必須有數字否則會報錯

grep -B1 "年齡:18" testgrep1

小白入門必知必會-Linux常用指令詳解-grep指令

2.4 案例4

找到符合條件的行的同時,還要顯示之後的行,-A選項的後面必須有數字否則會報錯

grep -A1 "年齡:18" testgrep1

小白入門必知必會-Linux常用指令詳解-grep指令

2.5 案例5

找到符合條件的行的同時,顯示其前後的行,-C選項的後面必須有數字否則會報錯

grep -C1 "年齡:18" testgrep1

小白入門必知必會-Linux常用指令詳解-grep指令

2.6 案例6

精确比對,表示搜尋的字元串作為一個獨立的單詞時才會被比對到

grep -w "zsy" testgrep

小白入門必知必會-Linux常用指令詳解-grep指令

2.7 案例7

查找不包含某個字元串的行

grep -v -i "zsy" testgrep

小白入門必知必會-Linux常用指令詳解-grep指令

2.8 案例8

可以同時比對多個目标,多個目标之間存在“或”關系,比對其中的任意一個都算作比對成功

grep -e "abc" -e "test" testgrep

小白入門必知必會-Linux常用指令詳解-grep指令

2.9 案例9

靜默模式,無論是否比對到字元串,都不會輸出任何資訊,配合“echo $?”指令

grep -q "test" testgrep

小白入門必知必會-Linux常用指令詳解-grep指令

至此,grep指令梳理完成。

繼續閱讀