正則 :grep 工具的正則表達式
正則:
.正則就是一串有規律的字符串
.正則對編寫shell腳本有很大幫助
.各種編程語言中都有正則
正則工具:grep/egrep(egrep是grep的擴展)、sed、awk
grep (過濾關鍵詞)
格式: grep [-cinvABC] 'word' filename
(1)-c 行數
(2)-i 不區分大小寫
(3)-n 顯示行號
(4)-v 取反(過濾出不是關鍵字外的行)
(5)-r 遍歷所有子目錄
(6)-A 後面跟數字n,過濾出符合要求的行以及下面n行
(7)-B 後面跟數字n,過濾出符合要求的行以及上面n行
(8)
例子 grep正則表達式
no1: grep '[0-9]' passwd
[]裏的數字0-9表示0-9之間有一個數字,不理數字是有幾個都過濾出,即過濾所有帶數字的行
no2: grep -v '[0-9]' /etc/inittab
(過濾出不帶數字的行)
no3: grep -nv '^#' inittab
(過濾出不以#開頭的行,“^”開頭符)
no4 :grep '[^a-zA-Z]' inittab
grep '^[^a-zA-Z]' inittab ->過濾出不是以字母開頭的行,即過濾出以數字開頭的行
(當“^”放在了[]裏後,它的意思就是“非”)
no5 :grep 'r.o' passwd
(這裏的“.”代表任意一個字符)
no6 :grep -n 'o*o' passwd
(*:代表*前面字符零個或多個,o*:一個o或者多個o)
no7 : grep -n '.*' passwd
(表示過濾所有,“.*”表示所有)
no7 :grep -n 'o\{2\}' passwd
({}表示前面符號重復範圍,’o\{2\}’表示o出現兩次(或者2的次數冪)在要在轉義符號“\”)
grep -n 'o\{0,3\}' passwd
不帶轉義符號“\”的寫法
egrep -n 'o{2}' passwd
grep -En 'o{2}' passwd
grep -En '(oo){2}' passwd
no8 :grep -n 'o\+b' passwd
("+"表示+前面字符一次或多次,而*是零次或多次)
no9 :egrep -n 'o?t' passwd
grep -En 'o?t' passwd
grep -n 'o\?t' passwd
(?表示問號前面字符零次或者一次)
no10 :grep -En 'root|nologin' passwd
(|表示或者)
在grep命令中有特殊符號的時候
(1)使用轉義符號
(2)-E
(3)使用egrep
正則 :grep 工具的正則表達式