grep與正則表達式


grep與正則表達式

1、grep程序

Linux下有文本處理三劍客 -- grep sed awk

   grep : 文本行過濾工具

    包含三個命令:grep egrep fgrep,他們是用來驚醒行模式匹配的

      egrep  = grep -E  //使用拓展正則表達式進行匹配

      fgrep  = fast grep  //只是用文件通配符進行匹配

      *grep 默認使用正則表達式進行文本匹配

    用法:

      grep [option] ... PATTERN [文件名]

    常見選項(opton):

      -E  //支持使用拓展的正則表達式(ERE

      -P  //使用Perl語言的正則表達式引擎進行搜索(每一種語言的正則表達式引  擎都不相同,甚至sed grep awk所使用的引擎也不相同)

      -f  //指定文件

      -i  //忽略大小寫

      -o  //僅僅輸出匹配的內容(默認輸出的是匹配到的行)

      -n  //顯示行號

      -v  //反選

      --color=auto  // 語法着色

      -w  // 匹配固定的單詞顯示所在行

   Sed : 文本行編輯器(流編輯器)

 

  awk : 報告生成器(做文本輸出格式化)

 

2、PATTERN -- 正則表達式

作用:

  通過一些特殊字符,來表示一類字符內容,然后交給前面的命令來執行;如果使用特殊字符本身的含義就需要\’進行轉譯。

  11字符匹配

    .  // 任意一個字符

    []  // 匹配范圍內的任意一個字符

    [^]  // 范圍外任意一個字符

  12次數匹配

    *  // 匹配前面的字符0次到n

    \// 匹配前面的字符0次到1

    \+  // 匹配前面字符1次到n

    \{m\}  // 匹配前面的一個字符m

    \{m,n\}  // 匹配前一個字符mn

    \{0,n\}  // 匹配前面的字符0次到n次(0必須加)

    \{m,\}  // 匹配前面一個字符至少m

  13位置錨釘

    ^  // 錨定行首

    $  // 錨定行尾

    \b  //錨定詞首或詞尾(用在前面為詞首,后面為詞尾)

    \>  // 錨定詞尾

    \<  // 錨定詞首

  14分組

    特性:

      默認情況下,Linux系統會為分組指定變量,變量的表示形式\1 \2 \3 ...(后向 引用)

    abc*  // 我們把abc看成一個整體

    \(\)  // 將里面的看作是一個整體進行匹配

    補充:

      擴展正則表達式分組用“()”表示;

      標准正則表達式中的\”可以去掉;

  

 

*匹配IP地址的正則表達式:


免責聲明!

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



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