文本處理三劍客之grep及正則表達式

文本處理三劍客之grep及正則表達式

 

文本處理工具:

 

Linux上處理文本三劍客:

    Grep:文本過濾器工具(模式:pattern)工具;

    Sed: stream editor,流編輯器;文本編輯工具;

    Awk: linux上實現為gawk,文本報告生成器(格式化文本);

 

    正則表達式:regual expresslon,REGEXP

        由一類特殊將字符及文本字符所編寫的模式,其中有些字符不表示其字面意義,而是用于表示控制或通配的功能;

            分兩類:

                基本正則表達式:BRE

                擴展正則表達式:ERE

 

         元字符:、(hello[[:space:]]\+\)\+

 

Grep : global search REgular expression and print out the line.

    作用:文本搜索工具,根據用戶指定的“模式(過濾條件)”對目標文本逐行進行匹配檢查;打印匹配到的行;

     模式:有贈則表達式的元字符及文本字符所編寫出的過濾條件;

 

     正則表達式引擎;

 

     Grep [options] PATTERN [FILE….]

     Grep [options] [-e PATTERN | -f FILE] [FILE…..]

 

         OPTIONS:

             –color=auto: 對匹配到文本進行著色后高亮顯示

             -i:忽略字符的大小寫

             -0:只顯示匹配到的字符本身

             -v:顯示不能被模式匹配到的行

             -E: 支持使用擴展正則表達式元字符:

             -q:–quiet,–silent:靜默模式,既不輸出任何信息;

 

             -A#: after,后#行

             -B#:before,前#行

             -C#:前后#行

 

基本正則表達式元字符:

                     .   : 匹配任意單個字符;  

                     []   : 匹配指定范圍內的任意單個字符

                     [^] :匹配指定范圍外的任意單個字符

                     [:digit:]、[:lower:]、[:upper:]、[:alpha:]、[:alnum:] 、[:punct:]、[:space:]

正則表達式

v  匹配次數:用在要指定次數的字符后面,用于指定前面的字 符要出現的次數

        *:匹配前面的字符任意次,包括0次 貪婪模式:盡可能長的匹配

        .*:任意長度的任意字符

        \?:匹配其前面的字符0或1次

        \+:匹配其前面的字符至少1次

     \{m\}:匹配前面的字符m次

    \{m,n\}:匹配前面的字符至少m次,至多n次

      \{,n\}:匹配前面的字符至多n次

      \{m,\}:匹配前面的字符至少m次

 

v 位置錨定:定位出現的位置

        ^:行首錨定,用于模式的最左側

        $:行尾錨定,用于模式的最右側

        ^PATTERN$: 用于模式匹配整行

        ^$: 空行

        ^[[:space:]]*$ :空白行

        \< 或 \b:詞首錨定,用于單詞模式的左側

        \> 或 \b:詞尾錨定;用于單詞模式的右側

         \<PATTERN\>:匹配整個單詞

 

 分組:\(\):將一個或多個字符捆綁在一起,當作一個整體進 行處理,如:\(root\)\+

     分組括號中的模式匹配到的內容會被正則表達式引擎記錄 于內部的變量中,這些變量的命名方式為: \1, \2, \3, …

     \1: 從左側起,第一個左括號以及與之匹配右括號之間 的模式所匹配到的字符;      

     實例:

         \(string1\+\(string2\)*\)

         \1: string1\+\(string2\)*

         \2: string2

      后向引用:引用前面的分組括號中的模式所匹配字符(而 非模式本身)

 

egrep及擴展的正則表達式 v

     egrep = grep -E

   vegrep [OPTIONS] PATTERN [FILE…] v

     擴展正則表達式的元字符: v

     字符匹配:

         . 任意單個字符

         [] 指定范圍的字符

         [^] 不在指定范圍的字符

    次數匹配:

         *:匹配前面字符任意次

         ?: 0或1次

         +:1次或多次

         {m}:匹配m次

         {m,n}:至少m,至多n次

 

     位置錨定:

         ^  :行首

         $  :行尾

         \<, \b :語首

         \>, \b :語尾 v

      分組:

          ()

          后向引用:\1, \2, … v

       或者:

           a|b

           C|cat: C或cat

           (C|c)at:Cat或cat

             

原創文章,作者:xiaoqiang512,如若轉載,請注明出處:http://www.www58058.com/33244

(0)
xiaoqiang512xiaoqiang512
上一篇 2016-08-12
下一篇 2016-08-12

相關推薦

  • 流編輯器Sed(Stream Edit)詳解

    流編輯器Sed(Stream Edit)詳解       Grep 、sed 和awk并稱為文本三劍客。使用Grep就可以很好的實現文本查找的功能,而且簡單有效。然而其卻無法直接對其進行編輯,sed的出現便解決了這一問題。 Sed被稱為流編輯器,它是一種新型的非交互式的文本編輯器,它逐行處理文件或輸入,并將結…

    Linux干貨 2016-08-22
  • N22-網路班-第2次作業-冥界之王

    1.linux上文件管理類命令都有哪些,其常用的使用方法極其示例演示。(1).創建目錄格式:mkdir [選項]  目錄功能:創建目錄常用選項說明: -m  創建目錄的同時設置訪問權限 -p  一次性創建多級目錄 -v  顯示過程[root@Cent…

    Linux干貨 2016-08-22
  • 一個開發眼中的運維

    在云計算時代,開發和運維的結合變得越來越重要。在DIFF論壇第一期,前新浪SAE運維主管,鄭志勇,分享了《一個開發眼中的運維》根據自己從開發人員轉型運維之后的心得,談如何把在開發上的運用抽象思維方式運用到運維領域。 1. 運維不是什么? 運維不是打雜的,運維不是客服,運維也不是服務開發的,但要做好合作。 2. 運維是什么? 運維服務于整個產品,保證架構合理,…

    Linux干貨 2015-03-11
  • 第四周:/etc/passwd、/etc/group文件熟悉及配合grep使用正則表達式

    1、復制/etc/skel目錄為/home/tuser1,要求/home/tuser1及其內部文件的屬組和其它用戶均沒有任何訪問權限。 [root@wlm ~]# useradd tuser1 [root@wlm ~]# cp -r etc/skel/ /home/tuser1/…

    Linux干貨 2016-10-13
  • nginx+tomcat+memcached構建session共享集群

    一、安裝配置tomcat 配置前說明: 系統為centos7 m1.xsllqs.com地址為192.168.1.107 c1.xsllqs.com地址為192.168.1.114 c2.xsllqs.com地址為192.168.1.113 安裝tomcat需要配合JDK使用,JDK有oracle JDK和open JDK兩種 oracle JDK8的下載地…

    Linux干貨 2016-06-26
  • Linux GRUB legacy

    Linux GRUB Linux GRUB Linux GRUB 單用戶模式(密碼破解) 救援模式 實例 GRUB菜單 GRUB命令行接口 GRUB簡介 GRUB 菜單組成 GRUB配置文件 GRUB安裝及修復 GRUB單用戶及救援模式 GRUB簡介 了解grub之前,需要理解linux的啟動流程,如果之前有對linux啟動流程不了解的可以看:http://…

    Linux干貨 2016-04-25
欧美性久久久久