grep 的常用表示式

2021-08-26 05:07:46 字數 2836 閱讀 6761

echo -e '\e[34mhaha\e[m'  這樣會輸出帶顏色的字串 -e 表示特殊處理 \e 這個 \e必須跟著 [符號

grep 常用 

grep [-acinv] '搜尋字串' filename

引數說明:

-a :將 binary 檔案以 text 檔案的方式搜尋資料

-c :計算找到 '搜尋字串' 的次數

-i :忽略大小寫的不同,所以大小寫視為相同

-n :順便輸出行號

-v :反向選擇,亦即顯示出沒有 '搜尋字串' 內容的那一行!

1.搜尋特定的字元 

grep 'oo' pp.txt  以下僅僅用 pp 代表 pp.txt

檢視顯示字元的行數  

grep -n 'oo' pp 

檢視非oo的字元 

grep -v 'oo' pp

檢視大小寫忽略的字元

grep -i 'oo' p

2.利用處理搜尋結果

檢視 tast 和 test的字串

grep -n 't[ae]st' pp  這裡[ae]只當乙個字元處理 a 或者是 e 這樣就能匹配 上面的要求

若是希望匹配 t(x)st 這個x是任意的字元的話,那麼可以如下處理方式

grep 't[.]st' pp  .符號代表任意的字元

檢視包含oo字元的資訊

grep -n 'oo' pp

若是希望在oo之前沒有g的字元資訊

grep -n '[^g]oo' pp 這裡的^就是取反的意思 非goo得字元

取前面非字元的字元

grep -n '[^a-za-z]oo' pp 

得到數字的字元的話

grep -n '[0-9]' pp  // 其實這個等同於  grep -n '[0-9[0-9]*' pp * 代表0個或是多個重複的資訊

3.行首和行尾的特殊處理 $^ 

若是希望取得第一行是 the 開頭的字元行

grep -n '^the' pp 

若是希望取得以英文本元開頭的字元

grep -n '^[a-za-z]' pp

取得不是以英文本元開頭的資訊

grep -n '^[^a-za-z]' pp   // 裡面的^是取反 外面的^是以上面開頭

取得小數點結尾的行

grep -n '\.$' pp     //小數點是特殊字元 需要用\進行轉義

注意在windows下 換行時 ^m 這個符號 

取得乙個空行的方式

grep -n '^$' pp 這裡就是取空行了

希望取得所有文件中非注釋掉得內容的話 那麼可如下

grep -v '^$' pp|grep -v ^#              第乙個是取非空行的資料 第乙個管道是取非#開頭的資料

我像有時候更多的是取 #開頭的行

grep -n '^#' pp 

4.任意字元和重複字元

. :絕對的任意字元

* :0個或是多個相同字元

要檢視gf中間是兩個字元的資料

grep -n 'g..f' pp

至少有乙個是o的字串

grep -n 'oo*' pp  //因為*代表0個或是多個

以g開頭和結尾,中間至少乙個o

grep -n 'goo*g' 

查詢gg中間是任意字元的字串

grep -n 'g.*g' pp 這裡.就代表任意字元

5.限定符 {}

檢視g和p之間存在兩個連個o的字串

grep -n 'go\p'

查詢至少兩個的字元創

grep -n 'go\p' pp

查詢只有兩個的字串

grep -n 'go\p' pp

6.重要的特殊字元

^word 待搜尋的字串(word)在行首!

範例:grep -n '^#' pp 搜尋行首為 # 開始的那一行!

word$ 待搜尋的字串(word)在行尾!

範例:grep -n '!$' pp 將行尾為 ! 的那一行列印出來!

.代表任意的乙個字元

範例; grep -n 'g.' pp 將是g開頭的兩個字元列印出來

\將特殊字元轉義

範例:grep -n \' pp  搜尋有單引號的那一行

*:匹配0個或是多個字元

grep -n 'o*' pp 匹配擁有零個或是多個o的字元

\ :匹配的個數

grep -n 'o\' pp 列印出擁有兩個oo的字元

匹配單個字元 

1.[list] : [abl] 匹配 abl中任意乙個

2.[^xx]:對其中的字元進行取反  這裡只能對的那個字元進行取反 若是希望是多個字元取反的話 還需要看看

3.[char1-char2]:匹配某個範圍之內的資料 例如 [a-z][a-z][0-9]

7.擴張的grep --- > egrep  這個等同於 grep -e 

grep -v '^$' pp | grep -v '^#'

通過egrep來表示就是

egrep -v '^$|^'

egrep的幾個特殊字元

+ :至少乙個或是多個   egrep -n 'go+d' pp

?:0個或是乙個        egrep -n 'go?d' pp

| :用或的方式來查詢   egrep -n 'go|good' pp 查詢go或是good

():找出群組的資料      egrep -n 'g(o|pp)d' pp 檢視god 或是gppd  這個類似於 但是比強大的是可以是多個字元進行亂換

egrep -n 'd(r|o)e' pp  ***** grep -n 'd[ro]e' pp 

grep 的常用表示式

echo e e 34mhaha e m 這樣會輸出帶顏色的字串 e 表示特殊處理 e 這個 e必須跟著 符號 grep 常用 grep acinv 搜尋字串 filename 引數說明 a 將 binary 檔案以 text 檔案的方式搜尋資料 c 計算找到 搜尋字串 的次數 i 忽略大小寫的不同...

grep正規表示式

grep的工作方式是這樣的,它在乙個或多個檔案中搜尋字串模板。如果模板包括空格,則必須被引用,模板後的所有字串被看作檔名。搜尋的結果被送到螢幕,不影響原檔案內容。grep可用於shell指令碼,因為grep通過返回乙個狀態值來說明搜尋的狀態,如果模板搜尋成功,則返回0,如果搜尋不成功,則返回1,如果...

Grep正規表示式

grep正規表示式 要用好grep這個工具,其實就是要寫好正規表示式,所以這裡不對grep的所有功能進行例項講解,只列幾個例子,講解乙個正規表示式的寫法。ls l grep a 通過管道過濾ls l輸出的內容,只顯示以a開頭的行。grep test d 顯示所有以d開頭的檔案中包含test的行。gr...