grep基本正則表達式以及擴展正則表達式

基本正則表達式:

grep:Globel serach REgular expression and print out the line

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

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

grep選項:

          -l:lgnorecase,忽略字符的大小寫;

          -o:僅顯示匹配到的字符串本身;

          -v: –invert-match:顯示不能被模式匹配到額行;

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

          -q:–quit,–slient:靜默,不輸出任何信息

          -A#:after:匹配本行及后#行

          -B#:before:匹配本行和前#行

          -C#:context,本行和前后各#行

基本正則表達式元字符:

          字符匹配:

               .:匹配任意單個字符        grep "r..t" /etc/passwd

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

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

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

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

                    *:匹配其前面的字符人一次;0,1,多次;

                    如: grep "x*y"

                                abxy

                                 aby

                                 xxxxxy

                                 yab

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

                     \?:匹配其前面的字符0次或1次;即前面的字符是可有可無的;

                     \+:匹配其前面的字符1次或多次;即前面的字符要出現至少1次;

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

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

                             \{0,n\}:至多n次

                              \{m,\}:至少m次

           位置錨定:

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

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

                       ^PATTERN$:用于PATTERN來匹配整行

                            ^$:空白行;

                           ^[[:space:]]*$:空行或包含空白字符的行;

                         單詞:非特殊字符組成的連續字符串(字符串)都稱為單詞;

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

                    

            分組及引用:

 \(\):將一個或多個字符捆綁在一起,當做一個整體進行處理;

               \(xy\)ab:將xy當做一個整體進行匹配

 Note:分組括號中的模式匹配到的內容會被正則表達式引擎自動記錄在內部的變量中

           如:

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

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

              \3:

相當于:(a+b-c)*d)

             如:lovers.txt

                       he loves hist lover

                       he likes his lover

                       she liker her liker

                       she loves her liker

        ~]#grep "\(l..e).*\1" lovers.txt

    后向引用:引用前面的分組括號中的模式所匹配到的字符:


擴展正則表達式:

 egrep:

            支持擴展的正則表達式實現類似于grep文本過濾功能;grep -E

             egrep [options] patern [file..]

                      選項:

                              -i,-o,-q,-A,-B,-C

                              -G:支持基本正則表達式

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

                   字符匹配:

                            .:任意單個字符

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

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

                   次數匹配:

                          *:任意次,0,1或多次;

                          ?:0次或1次,其前的字符是可有可無的;

                          +:其前字符至少1次

                         {m}:其前的字符m次

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

                                     {0,n} 

                                     {m,}

                    位置錨定:

                           ^:行首錨定;

                           $:行尾錨定;

                         \<,\b:詞尾錨定;

                         >\,\b:詞尾錨定

                    分組及引用:

                              ():分組;括號內的模式匹配的字符會被記錄于正則表達式引擎的內部變量中

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

                             或

                                  a|b:a或者b

                                 C|cat:C或cat

                                (c|C)at:cat或Cat

原創文章,作者:因為有你,如若轉載,請注明出處:http://www.www58058.com/31525

(1)
因為有你因為有你
上一篇 2016-08-08
下一篇 2016-08-08

相關推薦

  • 系統啟動流程

    linux系統啟動流程 內核的設計結構單內核:linux(線程–lwp輕量級進程)微內核:windows(支持真正意義上的多線程) 單內核:很多功能驅動都集成在一起 微內核:內核很小,功能單一。模塊化 linux為了適應眾多用戶的不同硬件需求,linux內核在設計上采用模塊化設計。可以動態加載模塊。核心模塊:ko 內核所獨有的。共享對象:so 紅…

    Linux干貨 2016-09-19
  • N25 – 第一周博客作業

      1. 描述計算機的組成及其功能2. 按系列羅列Linux的發行版,并描述不同發行版之間的聯系和區別3. 描述Linux的哲學思想,并按照自己的理解對其進行解釋性描述4. 說明Linux系統上命令的使用格式;詳細介紹ifconfig,echo,tty,startx,export,pwd,history,sh…

    Linux干貨 2016-11-28
  • 我的第一篇博客

    Hello,大家好,以后我也是博客中的一員了,希望能和大家共同進步。

    Linux干貨 2017-07-11
  • 文件查找

    文件查找: locate查找:     locate:     依賴于事先構建好的索引庫,操作系統剛完成沒有       系統自動實現(周期性任務);      &nbs…

    Linux干貨 2016-08-15
  • 第五周:grep和find的使用練習

    1、顯示當前系統上root、fedora或user1用戶的默認shell; grep -E "^(root|fedora|user1)" /etc/passwd | cut -d: -f7 grep -E "^root|fedora|use…

    Linux干貨 2016-10-25
  • N22-第九周作業

    第九周    1、寫一個腳本,判斷當前系統上所有用戶的shell是否為可登錄shell(即用戶的shell不是/sbin/nologin);分別這兩類用戶的個數;通過字符串比較來實現;    #!/bin/bash    #    decl…

    Linux干貨 2016-10-24
欧美性久久久久