# shell指令碼(2)正則表示式
阿新 • • 發佈:2022-04-17
一、基礎正則表示式
# 元字元 ^行首定位符 [root@init-02 ~]# grep "root" /etc/passwd root:x:0:0:root:/root:/bin/bash operator:x:11:0:operator:/root:/sbin/nologin [root@init-02 ~]# grep "^root" /etc/passwd root:x:0:0:root:/root:/bin/bash $行尾定位符 love$ .匹配任意單個字元 [root@init-02 ~]# grep abc 1.txt abc [root@init-02 ~]# grep adc 1.txt adc [root@init-02 ~]# grep a.c 1.txt abc adc *匹配前導符0到多次 [root@init-02 ~]# cat 1.txt a ab abc abcd abcde abcdef ggg hhh iii [root@init-02 ~]# grep "abc*" 1.txt ab abc abcd abcde abcdef [root@init-02 ~]# grep "abcd*" 1.txt abc abcd abcde abcdef .*任意多個字元 [root@init-02 ~]# grep ".*" 1.txt a ab abc abcd abcde abcdef ggg hhh iii [ ]匹配指定範圍內的一個字元 [lL]ove [root@init-02 ~]# cat 1.txt love Love 1ove iove [root@init-02 ~]# grep [lL]ove 1.txt love Love [ - ]匹配指定範圍內的一個字元,連續的範圍 [a-z0-9]ove //////[a-Z]=[a-zA-Z] [root@init-02 ~]# cat 1.txt love Love 1ove iove [root@init-02 ~]# grep [0-9] 1.txt 1ove [root@init-02 ~]# grep [a-z]ove 1.txt love iove [root@init-02 ~]# grep [a-Z]ove 1.txt love Love iove [^]匹配不在指定組內的字元 [^a-z0-9]ove //////取反 [root@init-02 ~]# cat 1.txt love Love 1ove iove [root@init-02 ~]# grep "[^a-z]ove" 1.txt Love 1ove [root@init-02 ~]# grep "[^0-9]ove" 1.txt love Love iove \用來轉義元字元 ('' "" \),脫意符 [root@init-02 ~]# grep "l." 1.txt love l.ve [root@init-02 ~]# grep "l\." 1.txt l.ve \<詞首定位符 [root@init-02 ~]# grep "love" 1.txt love iloveyou [root@init-02 ~]# grep "\<love" 1.txt love ^ 和 \<的區別 [root@init-02 ~]# cat 1.txt i loveyou loveyou [root@init-02 ~]# grep "\<love" 1.txt i loveyou loveyou [root@init-02 ~]# grep "^love" 1.txt loveyou \>詞尾定位符 love\> () \(..\)匹配稍後使用的字元的標籤 :3,9 s/\(.*\)/#\1/ 加註釋 [root@init-02 ~]# grep o 1.txt love loove looove [root@init-02 ~]# grep "o\{3\}" 1.txt looove
二、擴充套件正則
# 擴充套件正則表示式元字元 +匹配1~n個前導字元 [root@init-02 ~]# cat 1.txt lve love loove [root@init-02 ~]# egrep lo+ve 1.txt love loove ?匹配0~1個前導字元 lo?ve :?前面的o 有還是沒有,都行! [root@init-02 ~]# egrep lo?ve tom.sh love lve a|b匹配a或b [root@init-02 ~]# egrep "o|v" 1.txt lve 1ove loove looove loeve love Love iloveyou l.ve o oo ooo oooo ooooo ioooo ooooi iooooi ()組字元 [root@init-02 ~]# egrep "loveable|rs" 1.txt rs loveable lovers [root@init-02 ~]# egrep "love(able|rs)" 1.txt loveable lovers
三、簡單小結
# 學正則是需要勇氣和毅力的,看了一會自然就會犯困,迷迷糊糊又會把剛剛學的完全忘記,又無法很快的聯絡到實際生產中具體某個正則表示式的用處,所以記憶也不深,所以這個部落格就寫到這裡,有需要再會的,再進行總結或者增加原文。