文本處理工具之grep

                文本處理工具之grep

一、grep的簡介

1、grep是一個文本過濾器的工具,它根據用戶指定的模式(pattern)對目標文本進行匹配檢查,并將匹配的行打印到標準輸出或輸出重定向。

2、模式:由文本字符或正則表達式組成

3、正則表達式分兩類:

       基本正則表達式

       擴展正則表達式

二、grep工具

grep的基本語法

grep  [OPTIONS]  PATTERN  [FILE…]

選項:

    -i:忽略字符大小寫

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

    -o:僅顯示匹配的字符串

    -q:靜默模式,不輸出任何信息(多用于腳本)

    -c:顯示統計到的行數,等同于wc -l

    -e:指定多個搜索條件

    -A #:匹配到的后#行

    -B #:匹配到的前#行

    -C #:匹配到的前后個#行

    -E :是擴展正表達式   

    -n :表示顯示行號

三、基本正則表達式的元字符

    1、字符匹配:

       . :任意單個字符

       [] :匹配范圍內任意單個字符,(如:[abc]表示可以是a 或b或c中的任意一個)

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

       幾種常用的特殊的字符集:

       [:alnum:] 數字和字符

       [:alpha:] 英文大小寫字符 a-z A-Z

       [:lower:] 小寫字母

       [:upper:] 大寫字母

       [:space:] 專門匹配空格

       [:digit:] 十進制數字

       [:xdigit:]十六進制數字

       [:punct:] 標點符號

2、次數匹配

       * :表是其前字符任意次

       \?:表示其前字符0次或一次

       \+:表示其前字符至少一次

       \{m\}:表示其前字符m次

       \{m,n\}:表示其前字符至少m最多n次

       \{0,n\}:表示其前字符最多n次

       \{m,\}:表示其前字符至少m次

3、位置錨定:

   ^ :錨定行首 (如:“^root”表示以“root”字符串作為行的開頭)

   $ :錨定行尾 (如:“root$”表示以“root”字符串作為行的行尾)

   \<或\b:詞首錨定

       \>或\b:詞尾錨定

       ^$:表示空行,但不包含空白字符

       ^[[:space:]]*$:表示空行,包含空白字符

       \<PATTERN\>等同于\bPATTERN\b:表示匹配整個單詞

4、分組

   \(\)

   分組是將一個或多個字符綁定在一起,當作一個整體來處理(比如后向引用:\1 \2 …)。

   示例  \(adc\(xyz\)\)利用后向引用

         \1:表示第一個左括號以及與其匹配的右括號之間的匹配到的內容。本例中\1表示:abc\(xyz\)

         \2:表示第二個左括號以及與其匹配的右括號之間的匹配到的內容。本例中\1表示:xyz

5、基本正則表達式的使用

         1)顯示/etc/passwd中不以/sbin/nologin結尾的行

                文本處理工具之grep

         (2) 顯示/etc/fstab文件中以#號開頭的行

                文本處理工具之grep

         3)顯示root單詞在/etc/passwd的文件中出現的次數

                文本處理工具之grep

         4)找出當前系統上用戶名和其默認shell相同的用戶

                文本處理工具之grep

         (5)統計/etc/init.d/functions文件中每個單詞出現的次數,并統計出前十名

                文本處理工具之grep

四、擴展正則表達式

     1、字符匹配:

       . :任意單個字符

       [] :匹配范圍內任意單個字符,(如:[abc]表示可以是a 或b或c中的任意一個)

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

     2、次數匹配

       * :表是其前字符任意次

       ?:表示其前字符0次或一次

       +:表示其前字符至少一次

       {m}:表示其前字符m次

       {m,n}:表示其前字符至少m最多n次

       {0,n}:表示其前字符最多n次

       {m,}:表示其前字符至少m次

      

     3、位置錨定

        擴展正則表達式中的位置錨定和基本正則表達式相同

     4、分組

        ():與基本正則表達式相比去掉了“\”轉義,用法和基本正則表達式相同

     5、擴展正則表達式也可以用 “egrep”這個文本處理工具,它等同于 “grep -E”

        它倆的用法一致

     6、擴展正則表達式的使用

        1)取出路徑/etc/passwd的基名和路徑名

                文本處理工具之grep

 2)在/etc/passwd文件中以root開頭行,并且行內至少再有一個root單詞的行

          文本處理工具之grep

         

 (3)顯示/etc/fstab 文件中以#開頭其后跟了至少一個空白字符的行

                文本處理工具之grep

        

 

              

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

(0)
zqzq
上一篇 2017-05-06
下一篇 2017-05-06

相關推薦

  • mkdir用法實踐

    mkdir:make directories mkdir [OPTION]… DIRECTORY… -p: 自動按需創建父目錄; -v: verbose,顯示詳細過程; -m MODE:直接給定權限;   1、創建/tmp目錄下的:a_c,a_d, b_c, b_d ~]# mkdir -v /tmp/{a,b}_{c,d}…

    Linux干貨 2016-11-06
  • Linux 文件系統上的權限

    文件系統上的權限是指文件系統上的文件和目錄的權限,由于Linux是一種多用戶的操作系統,而且允許同一時間登錄多個用戶操作,所以我們就需要一定的管理機制來對限定不同用戶對同一文件或目錄的操作權限。 文件系統上的權限主要針對三類對象(訪問者)進行定義: owner:屬主 u; g 屬組 group; o: 其它 other 每個文件針對每類訪問者都定義了三種權限…

    2017-06-04
  • linux中bash的基礎特性和基本文件管理命令

    linux的文件管理類命令 linux系統下的涉及到目錄管理命令,主要有 mkdir,rmdir linux系統下也會用到許多文件查看類命令,包括cat,tac,head,tail,more,less等 linux系統下涉及的文件管理類命令主要有cp,mv,rm 本節我們主要說明文件管理類命令的使用方法。 cp命令的使用方法 首先,cp這個命令的作用是可以復…

    Linux干貨 2016-09-26
  • 8-1作業

    1、創建testuser uid 1234,主組:bin,輔助組:root,ftp,shell:/bin/csh home:/testdir/testuser [root@localhost ~]# useradd -u 1234 -g bin -G root,ftp …

    Linux干貨 2016-08-03
  • 腳本練習

      1、寫一個腳本,使用ping命令探測10.1.8.1-10.1.8.10之間所有主機的在線狀態,在線的主機使用綠色顯示,不在線的主機使用紅色顯示。     #!/bin/bash     #Test host whether onlin…

    Linux干貨 2016-12-18
  • Linux系統啟動過程及其修復過程簡析

    Linux組成 Linux: kernel+rootfs     kernel: 進程管理、內存管理、網絡管理、驅動程序、文件系統、安全功能     rootfs:程序和glibc     庫:函數集合, function, 調用接口(頭文…

    Linux干貨 2016-09-19
欧美性久久久久