shell 正規表示式及grep命令

2021-10-02 19:29:23 字數 2630 閱讀 8561

1. 什麼是grep搜尋命令

grep是乙個強大的搜尋工具

grep (global search regular expression(re

) and print out the line,全面搜尋正規表示式並把行列印出來)是一種強大的文字搜尋工具,

它能使用正規表示式搜尋文字,由正規表示式或者字元及基本文字字元所編寫的過濾條件,並把匹配的行列印出來。

用於過濾/搜尋的特定字元。可使用正規表示式能多種命令配合使用,在使用上十分靈活

2. 什麼是grep -e 擴充套件搜尋命令

grep 正規表示式與擴充套件正規表示式

grep -e 「[1-9]+」 = egrep 「[1-9]+」

正規的grep 不支援擴充套件的正規表示式,豎線是用來表達「或」的擴充套件正規表示式元字元,正規的 grep無法識別,加上反斜槓,這個字元就被翻譯成擴充套件正規表示式,就像egrep 和grep -

e一樣

3. grep中的正規表示式

grep的格式:

grep 匹配條件 處理檔案

該實驗我們用desktop來完成

首先複製乙份/etc/passwd到當前目錄,ls 可以看到,在當前路徑中,passwd檔案已經存在

編輯passwd檔案

由於passwd檔案內容太多,我們實際上用不了這麼多的字元,因此將內容刪掉一部分,再加上後三行內容,如下圖所示

這樣我們就將待匹配的字元檔案準備好了

從passwd檔案中過濾出含有root關鍵字的行

從passwd檔案中擴充套件過濾出含有「root」和「root」的行

不區分大小寫從passwd檔案中擴充套件過濾出含有root關鍵字的行

從passwd檔案中不區分大小寫過濾出以「root」關鍵字為開頭和結尾的行

-v表示除了,第二條命令的意思是,從passwd檔案中不區分大小寫過濾出root關鍵字在中間的行

-n表示顯示行號

從passwd檔案中不區分大小寫過濾出以root關鍵字開頭或結尾的行,並且顯示行號

-n2表示輸出關鍵字以及前後兩行

從passwd檔案中過濾出root關鍵字的行並且顯示其前後兩行(後邊只顯示了一行是因為第36行以後沒有內容)

同樣,-n1表示輸出關鍵字以及前後1行

grep中的正規表示式 字元

說明^xy

以xy開頭

xy$以xy結尾

『x…y』

xy中間有4個字元

『x…』

x後邊有4個字元

『…y』

y前邊有4個字元

4. grep中字元的匹配位置設定

grep中字元的匹配位置設定 位置

說明^關鍵字

以關鍵字為開頭

關鍵字$

以關鍵字為結尾

\ 《關鍵字

以關鍵字為開頭並且關鍵字前邊沒有任何字元

關鍵字\>

以關鍵字為結尾並且關鍵字後邊沒有任何字元

\< 關鍵字\>

關鍵字前後都沒有任何字元

編輯westos檔案

寫入以下內容

匹配xy中0-任意個字元

匹配x和y中只能有乙個字元

過濾出x和y中只能有3個字元

修改westos檔案內容

寫入的內容如下圖

過濾x出現0-任意次y出現1個

過濾x字元出現0到1次y出現1個

修改westos檔案內容

過濾x出現1到任意次y出現1個

過濾x乙個y出現1個

過濾x乙個y出現1個

過濾x在開頭出現乙個,y出現1次

過濾x出現在開頭,y出現在結尾(避免貪婪模式)

過濾x出現1到任意次,y出現一次

過濾xy這個整體出現2次以上

shell 正規表示式 grep

grep c etc passwd grep c etc passwd egrep c etc passwd 在vim下面用 s aaa 可將所有字串 替換為aaa 找的是空行,包括回車 最好用egrep而且搜尋的正規表示式要加雙引號或單引號,最好是雙引號 基本正規表示式原字元 元字元功能示例說明 ...

grep 及 正規表示式

grep 根據模式搜尋文字,並將符合模式的文字行顯示出來。pattern 文字字元和正規表示式的元字元組合而成的匹配條件 i 忽略大小寫 color 顯示標註顏色 v 顯示沒有被模式匹配到的行 o 只顯示被匹配到的字串 任意長度的任意字元 任意單個字元 指定範圍內的 指定範圍外的 元字元 匹配任意單...

grep及正規表示式

grep,egrep,fgrep grep 根據模式搜尋文字,並將符合模式的文字行顯示出來。pattern 文字字元和正規表示式的元字元組合而成匹配條件 grep options pattern file.i color v 顯示沒有被模式匹配到的行 o 只顯示被模式匹配到的字串 任意長度的任意字元...