egrep 正規表示式

2022-09-02 18:09:11 字數 2512 閱讀 2318

egrep 正規表示式

用正規表示式在檔案或輸入中搜尋匹配的字串,並列印出匹配的行。egrep匹配之前,會刪除每行結尾的換行符。

grep [option]... pattern [file]...

option 是選項,如  

-i  

匹配時忽略大小寫

pattern 是正規表示式,需要用單引號擴起來

file 是檔案,可以同時搜尋多個檔案

^ 匹配行首

$ 匹配行尾

字元組,用於匹配字元組內任意字元,在字元組內部與外部,關於元字元的規定是不同的。

3.2.1 字元組內元字元

l 連字元「-

」,在子字元組內連字元表示範圍

l 脫字元「^

」,在子字元組內脫字元表示否定

3.2.2 字元組注意事項

l 連字元「-

」,位於字元組內第乙個字元時,只是普通字元,不具備特殊意義

l 在字元組內字元

? .  \ 都是普通字元

3.2.3 字元組例子

[.\?] 匹配.或?或

\,這裡的元字元

.?當做普通字元處理,這裡的

\沒有轉譯的功能。

[-12] 匹配-或1或

2,這裡的連字元當做普通字元處理

[abc] 匹配a或b或

c[0-9] 匹配任意乙個數字

[a-z] 配置任意乙個小寫字母

[0-9a-za-z] 匹配任意數字或字母

[^1-5] 匹配1-5之外的任意字元

| 表示」或」的意思,用於表示任意子表示式。多選結構用括號來界定範圍

3.3.1 多選結構例子

grey|gray  或gr(a|e)y 或

gr[ae]y

都匹配

gray

或 grey

3.3.2 多選結構注意事項

l 多選結構用括號來界定範圍

l 多選結構的每個子表示式自身都可能是完整的正規表示式,都可以匹配任意長度的文字

3.3.3 多選結構與字元組的區別:

字元組可以算是一門獨立的微型語言,它對元字元有其自身的規定

多選結構則是正規表示式語言主體的一部分。

\< 用於匹配單詞的首

\> 用於匹配單詞的尾

如:\匹配單詞cat 不匹配包含

cat的其它單詞,如

cata

、ccat

元字串行:

元字元?用於表示可選項,表示有或者沒有;元字元?一定要放在某個字元的後面,用於表示該字元有或沒有,並且用括號來界定元字元?的作用物件

如:july? 匹配jul 或

july ;

都表示七月

a(july)? 匹配a  或

july;

這裡用括號來界定了元字元

?的作用物件。

july? (fourth|4(th)?) 匹配

july fourth

或 july 4

或 july 4th

或 jul fourth

或 jul 4

或 jul 4th

量詞名稱

含義問號

匹配前面的字元0-1次加號

匹配前面的字元1-n

次,盡可能多匹配

星號匹配前面的字元0-n

次,盡可能多匹配

匹配min

到max

次,括號的作用:

3.7.1. 界定|的範圍

3.7.2. 的把若干字元組合成乙個單元,受量詞的作用;如

?+*3.7.3. 反向引用,

括號能夠「記憶」其中子表示式匹配到的文字,可用\num

來獲取這些匹配到的文字;

num代表數字,從

1開始,

num的編號按照開括號出現的先後排序

如果某個括號只是分組而不捕獲,可以使用語法 (?:

如;([a-z])([0-9])\1\2 \1代表

[a-z]

匹配的內容 \2代表

[0-9]

匹配的內容

egrep -i 『\<([a-z]+) +\1\>』  file 匹配file中任意重複

2次的單詞

\t 製表符

\n 換行符

\r 回車符

\s 任何「空白」字元(

空格符,製表符,進紙符

)\s 除\s之外的符合

\w [a-za-z0-9]

\w [^a-za-z0-9]

\d [0-9]

\d [^0-9]

元字元名稱

匹配物件

點匹配單個任意字元

字元組匹配任意列出的字元

排除型字元組

匹配任意沒有列出的字元

脫字元匹配行首

美元符匹配行尾

反斜線-

小於匹配詞首

反斜線-

大於匹配詞尾

豎線匹配分隔兩旁的任意乙個表示式

括號界定|

的作用範圍

擴充套件正規表示式 egrep

grep 命令僅支援基礎正規表示式,如果使用擴充套件正規表示式,需要使用 egrep 或 awk 命令。這裡我們直接使用 egrep 命令。egrep 命令與 grep 命令的用法基本相似。egrep 命令是乙個搜尋檔案獲得模式,使用該命令可以搜尋檔案中的任意 字串和符號,也可以搜尋乙個或多個檔案的...

egrep及擴充套件正規表示式

正規表示式 basic regexp 基本 extended regexp 擴充套件 grep 使用基本正規表示式定義的模式來過濾文字的命令 e 使用擴充套件正規表示式 a after 後 行 b before 前 行 c 前後各 行 擴充套件正規表示式 字元匹配 匹配任意單個字元 匹配指定範圍內的...

正規表示式 grep與egrep

n 表示顯示行號 i 表示不區分大小寫刷選 v 表示方向查詢 1 查詢特定的字元 grep n the abc.txt 查詢有the的行,並顯示出行號grep in the abc.txt 不區分大小寫查詢有the的行,並顯示行號如果是想查詢不包含the的行,vn選項即可 grep vn the a...