1. 程式人生 > >Linux學習之十一egrep及擴充套件正則表示式(egrep)

Linux學習之十一egrep及擴充套件正則表示式(egrep)

一、egrep及擴充套件正則表示式:
    REGEXP:REGular EXPression
    
    1、正則表示式:
        Basic REGEXP:基本正則表示式
        Extended REGEXP:擴充套件正則表示式
    2、擴充套件正則表示式:Extended REGEXP
        字元匹配:
            .:任意單個字元
            []:範圍內的任意單個字元
            [^]:範圍外的任意單個字元
        次數匹配:
            *:其前字元任意次
            ?:其前字元0次或1次
            +:其前字元至少1次,相當於正則表示式中'\{1,\}'
            {m,n}:匹配其前字元至少m次,至多n次
        位置錨釘:
            ^:錨釘行首
            $:錨釘行尾
            \<:錨釘詞首
            \>:錨釘詞尾
        分組:
            ():後向引用
                \1:引用第一個左括號以及與之對應的右括號所包含的所有內容
                \2:引用第二個左括號以及與之對應的右括號所包含的所有內容
                \3:引用第三個左括號以及與之對應的右括號所包含的所有內容
        或者:
            |:表示或者(or),如a|b,表示匹配a或者b
                例1:[
[email protected]
~]# grep -E --colour 'C|cat' test6.txt
                    cat
                    Cat
                    C
                    China
                例2:[[email protected] ~]# grep -E --colour '(C|c)at' test6.txt
                    cat
                    Cat
    3、grep -E =egrep                
                    
課後練習:
1、找出/proc/cpuinfo檔案中的1位數或2位數的行;
[
[email protected]
~]# grep '\<[0-9]\{1,2\}\>' /proc/cpuinfo
2、找出/boot/grub/grub.conf命令結果中的1-255之間的整數;
[[email protected] ~]# egrep --colour '\<([1-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\>' /boot/grub/grub.conf
3、查詢當前系統上名字為wolf(必須出現在行首)的使用者的賬號的相關資訊,檔案/etc/passwd;
[[email protected] ~]# grep '^wolf\>' /etc/passwd                    
4、顯示/boot/grub/grub.conf檔案中以一個或多個空白字元開頭的行;
[
[email protected]
~]# grep -E '^[[:space:]]+' /boot/grub/grub.conf
或者:
[[email protected] ~]# grep '^[[:space:]]\{1,\}' /boot/grub/grub.conf
5、找出ifcongfig輸出結果中IP及掩碼等地址;
[[email protected] ~]# ifconfig | egrep --colour -o '(\<([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\>\.){3}\<([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\>'
6、找出ifconfig輸出結果中A、B、C三類的IP地址;
[[email protected] ~]# ifconfig | egrep --colour -o '\<([1-9]|[1-9][0-9]|1[0-9]{2}|2[0-1][0-9]|22[0-3])\>(\.\<[0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-4]){2}\.\<([1-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-4])\>'

相關推薦

no