grep


grep程序
    Linux下有文本處理三劍客--grep sed awk
    grep:文本行過濾工具
    sed:文本行編輯器(流編輯器)
    awk:報告生成器(做文本輸出格式化)

    grep
      包含三個命令:grep egrep fgrep,它們是用來進行行模式(patter)匹配的
      egrep=grep -E //使用擴展的正則表達式進行匹配
      fgrep=fast grep //只使用文件通配符進行匹配
      *grep默認使用正則表達式進行文本匹配*

     grep的用法:
        grep [option]...PATTERN [filename]
        a*

      grep的常見選項--option
        -E 支持使用擴展的正則表達式(ERE)(regexp)
        -P 使用perl語言的正則表達式引擎進行搜索(每一種語言的正則表達式引擎都不相同,甚至sed grep awk使用的regexp引擎也不相同)
        -i 忽略大小
        -v 進行反選
        -o 僅僅輸出匹配的內容(默認輸出的是匹配到的行)
        --color=auto 語法着色
        -n 顯示行號
        -w 匹配固定單詞

      PATTERN--正則表達式
        作用:用過一些特殊字符,來表示一類字符內容,然后交給前面的命令來執行;如果使用特殊字符本身含義,就要用\進行轉義
      回顧:文件通配符(globbing)
          *?[][^]
      1、字符匹配
        . 代表任意一個字符?
        [] 范圍你餓的任意一個字符
        [^] 范圍外任意一個字符
        字符類:[:digit:][:alnum:][:alpha:][:lower:][:upper:][:space:][:punct:]
      2、次數匹配
        *匹配前面的字符0次到無數次
        ?匹配前面的字符0次到1次
        +匹配前面的字符1次到多次
        \{m\}匹配前面的字符m次
        \{m,n\}匹配前面的字符m到n次
        \{0,n\}匹配前面的字符0次到n次
        \{m,\}匹配前面字符至少m次

      3、位置錨定
        ^錨定行首
        $錨定行尾
        \b錨定詞首和錨定詞尾
        \>錨定詞尾
        \<錨定詞首
      4、分組
        \(\)實例:\(abc\)* abcabcabc...
        **分組特性:默認情況下,Linux系統會為分組指定變量,變量的表示形式 \1 \2 \3...
        示例:\(ab+\(xy\)*\),其中\1 = ab+\(xy\)*,\2=xy
            abbbbxyxyxyabxy

      補充:擴展的正則表達式
          【標准的正則表達式中的\都可以去掉】
           分組:()后向引用 \1 \2 \3...
            或:|


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM