shell編程基礎【六】---正則表達式

shell編程基礎七---正則表達式
2011-04-04 15:37

正則表達式:

        正則表達式就是用某種模式去匹配一類字符串的一個公式

        正則表達式是通過正則表達式引擎來實現,它是解釋正則表達式的基礎軟件

 

        LINUX中,常用的正則表達式引擎有兩種:基本正則表達式(BRE)、擴展正則表達式(ERE)

 

        大多數LINUX程序符合擴展正則表達式,但有些程序(如sed)只符合ERE的子集。

 

正則表達式的基礎

        普通字符(無特殊含義)和元字符(有特殊含義)

 

        正則表達式區分大小寫

元字符

    基本正則

        .       匹配單個字符

        *       匹配0個或多個字符

        ^       開始處

        $       結尾

        []      字符範圍

        

    擴展正則

        ?       零個或一個字符

        +      一個或多個字符

        {}      用於指定出現次數

        |       正則表達式作邏輯或

        ()      分組

 

    其它(很多軟件不支持)      

        \< \>  匹配單詞的開始和結束

        \( \)   分組

    例:

          ^   以什麼開頭(^一定要放在開始處,放在其它位置就作普通字符了)

                ll | grep ^d  中顯示目錄 

                cat /etc/passwd | sed -n '/^r/p'  

 

                echo "This ^ is a test" | sed -n '/s ^/p'  -- ^作普通字符,沒出

現在最前

                This ^ is a test

 

                echo "This ^ is a test" | sed -n '/^ i/p'  -- 不是普通字符了

 

        

          $ 結尾(要放在後面)

                顯示系統中不能登錄的用戶                

                cat /etc/passwd | sed -n '/nologin$/p'

 

            ^$  空行

                

        [root@t176 script]# cat test.txt | sed -n '/^this is a test$/p' --只包

        this is a test

 

            [YyNn0-9] 

 

常見的正則表達式:

        /^$/            空行

        /^.*$/          整行

        

    特殊字符類

        [[:alpha:]]     任意字母

        [[:alnum:]]             任意字母和數字

        [[:blank:]]             空格或tab

        [[:digit:]]             數字

        [[:lower:]]             小寫字母

        [[:print:]]             任意可打印字符

        [[:space:]]             空格

        [[:upper:]]             大寫字母


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章