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...