正則表達式分兩類:基本正則表達式(BRE)和擴展正則表達式(ERE)。
基本正則表達式的元字符含義:
1、.:匹配任何單個字符
2、[]:匹配指定范圍內的單個字符
3、[^]:匹配指定范圍外的單個字符
4、*:匹配其前面任意次數的字符
5、\?:匹配其前面0或1次
6、\+:匹配其前面1或多次
7、\{m\}:精確匹配m次
8、\{m,n\}:匹配至少m次,最多n次
9、.*:匹配任意長度的任意字符
10、^:行首錨定,
11、$:行尾錨定
12、\:詞首錨定(也可以用\b)
13、\&;:詞尾錨定(也可以用\b)
14、^$:匹配空白行
15、\(\):常與\n(n為數字)一起用,用來匹配某單個或多個字符組合的重現次數
二、擴展正則表達式的元字符含義:
1、.:匹配任何單個字符
2、[]:匹配指定范圍內的單個字符
3、[^]:匹配指定范圍外的單個字符
4、*:匹配其前面任意次數的字符
5、?:匹配其前面0或1次
6、+:匹配其前面1或多次
7、{m}:精確匹配m次
8、{m,n}:匹配至少m次,最多n次
9、.*:匹配任意長度的任意字符
10、^:行首錨定,
11、$:行尾錨定
12、\:詞首錨定(也可以用\b)
13、\&;:詞尾錨定(也可以用\b)
14、^$:匹配空白行
15、():常與\n(n為數字)一起用,用來匹配某單個或多個字符組合的重現次數
16、|:匹配|符號前或后的字符
三、可以匹配正則表達式的命令有:(這里只說grep命令)
1、grep:grep用基本正則表達式來匹配文本行。
格式:grep [OPTIONS] PATTERN [FILE...]
grep [OPTIONS] [-e PATTERN | -f FILE] [FILE...]
選項:
-E:使用擴展正則表達式進行匹配(相當于egrep)
-F:相當于fgrep
-i:匹配時忽略大小寫
-v:顯示不匹配模式的行
-o:只顯示匹配到的行
-q:靜默模式
--color=auto:對匹配到的字符做高亮顯示
四、例子:
1、顯示/etc/passwd文件中以bash結尾的行;

2、顯示/etc/passwd文件中的兩位數或三位數;

3、 顯示'netstat -tan'命令結果中以'LISTEN'后跟0個、1個或多個空白字符結尾的行

4、添加用戶bash,testbash, basher以及nologin用戶(nologin用戶的shell為/sbin/nologin);而后找出/etc/passwd文件中用戶名同shell名的行;

5、顯示當前系統上root、centos或user1用戶的默認的shell和UID;

6、找出/etc/rc.d/init.d/functions文件中某單詞(單詞中間可以存在下劃線)后面跟著一組小括號的行

7、使用echo輸出一個路徑,而后egrep找出其路徑基名;
進一步地:使用egrep取出其目錄名


8、找出ifconfig命令執行結果中1-255之間的數字;
