Linux grep與正則表達式淺析

#Linux grep與正則表達式淺析
##grep
  grep(global search regular expression(RE) and print out the line,全面搜索正則表達式并把行打印出來)是一種強大的文本搜索工具,它能使用正則表達式搜索文本,并把匹配的行打印出來。

###grep語法
    grep [options] pattern [file…]
        options:
            -v:對搜索內容取反

Linux grep與正則表達式淺析
            -i:搜索時忽略大小寫

Linux grep與正則表達式淺析

            -n:顯示搜索內容的行號

Linux grep與正則表達式淺析

            -o:只顯示匹配到的內容

Linux grep與正則表達式淺析
            -q:靜默模式,不輸出信息(常用于腳本,使用echo $?判斷,echo $?返回值位0時證明grep命令匹配已到模式字符,非零1~255匹配失敗)

Linux grep與正則表達式淺析
            -e:指定多個pattern
            -A#:顯示匹配pattern后#行內容
            -B#:顯示匹配pattern前#行內容
            -C#:顯示匹配pattern前后各#行內容

Linux grep與正則表達式淺析
            -E:支持擴展表達式

##基本正則表達式元字符
###字符匹配
        . :匹配任意單個字符

Linux grep與正則表達式淺析
        []:匹配中括號范圍內的任意單個字符

Linux grep與正則表達式淺析
        [^]:匹配中括號范圍外的任意單個字符

Linux grep與正則表達式淺析
        [:alpha:]:匹配任意大小寫字母

Linux grep與正則表達式淺析
        [:alnum:]:匹配字母與數字

Linux grep與正則表達式淺析
        [:lower:]:匹配任意小寫字母

Linux grep與正則表達式淺析
        [:upper:]:匹配任意大寫字母

Linux grep與正則表達式淺析
        [:space:]:匹配空格

Linux grep與正則表達式淺析
        [:digit:]:匹配十進制數字
        [:punct:]:匹配標點符號
###次數匹配
        * :匹配前字符任意次,0,1,……

Linux grep與正則表達式淺析
        .*:匹配任意長度任意字符

Linux grep與正則表達式淺析
        \?:匹配前字符0次或1次

Linux grep與正則表達式淺析
        \+:匹配前字符1次至無限次(至少1次)

Linux grep與正則表達式淺析
        \{n\}:匹配前字符n次

Linux grep與正則表達式淺析
        \{n,m\}:匹配前字符至少n次,至多m次

Linux grep與正則表達式淺析
        \{n,\}:匹配前字符至少n次,
        \{,m\}:匹配前字符至多m次
###位置錨定
        ^ :錨定行首

Linux grep與正則表達式淺析
        $ :錨定行尾

Linux grep與正則表達式淺析
Linux grep與正則表達式淺析

        ^$ :表示空行,^[[:space:]]\+$:空白行

        \<或\b:錨定詞首

Linux grep與正則表達式淺析
        \>或\b:錨定詞尾

Linux grep與正則表達式淺析
        注:\b:位置決定錨定詞首或詞尾
###分組及引用
        \( \):將一個或多個字符"捆綁"成分組,后向使用變量\1引用(可按分組數引用對應變量,引用的是匹配到的字符而非匹配模式)

Linux grep與正則表達式淺析

        最后一條命令:查找/etc/passwd文件同行中出現同一單詞出現兩次的行

##擴展正則表達式元字符
###字符匹配
        與基本正則表達式相同(使用方法與基本正則表達式相同)
###次數匹配
        * :匹配前字符任意次,0,1,……(使用方法與基本正則表達式相同)
        .*:匹配任意長度任意字符,(使用方法與基本正則表達式相同)
        ?:匹配前字符0次或1次,(使用方法與基本正則表達式相同,以此為例)

Linux grep與正則表達式淺析
        +:匹配前字符1次至無限次(至少1次),(使用方法與基本正則表達式相同,)
        {n}:匹配前字符n次,(使用方法與基本正則表達式相同)
        {n,m}:匹配前字符至少n次,至多m次,(使用方法與基本正則表達式相同)
        {n,}:匹配前字符至少n次,(使用方法與基本正則表達式相同)
        {,m}:匹配前字符至多m次,(使用方法與基本正則表達式相同)
###位置錨定
        與基本正則表達式相同,(使用方法與基本正則表達式相同)
###分組引用
        ():擴展正則表達式分組不需要對其轉義,使用和基本正則表達式相同

Linux grep與正則表達式淺析
###其他
        在基本正則表達式模式匹配時使用或(|)需要對其轉義(前面加\),擴展正則表達式模式匹配時使用或(|)不需要對其轉義。

Linux grep與正則表達式淺析

配圖為常用選擇。

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

(0)
wangywangy
上一篇 2017-04-06 10:19
下一篇 2017-04-06 15:09

相關推薦

  • DNS詳解

    概述     互聯網訪問絕大多數都是基于域名的訪問,互聯網訪問的基礎是基于IP來實現的,因此,需要有一種將域名解析成IP的機制,讓用戶在利用域名訪問時,自動將域名轉換成為對應的IP,這就是DNS的功能,本章將介紹一些DNS相關的內容,具體分為:     1、DNS的基礎概念 &n…

    Linux干貨 2016-10-08
  • 文件處理工具

    Linux的哲學思想之一是一切皆文件,所有系統中有許多文本文件。因此Linux有許多關于文本處理的命令。 cat命令 連接文件并打印到標準輸出設備上,cat經常用來顯示文件內容。 語法 cat [OPTION]… [FILE]… 常用選項 -A, –show-all #顯示所有控制符 -b, –num…

    Linux干貨 2016-08-08
  • 馬哥教育網絡班20期-第四周課程作業

    1、復制/etc/skel目錄為/home/tuser1,要求/home/tuser1及其內部文件的屬組和其他用戶均沒有任何訪問權限。       cp -r /etc/skel /home/tuser1 | chmod -R g…

    Linux干貨 2016-06-29
  • Linux磁盤管理

     I/O Ports:I/O設備地址   一切皆文件:             poen(),read(),write(),close()   設備類型:     &nb…

    Linux干貨 2016-08-29
  • GDB中應該知道的幾個調試方法

    七、八年前寫過一篇《用GDB調試程序》,于是,從那以后,很多朋友在MSN上以及給我發郵件詢問我關于GDB的問題,一直到今天,還有人在問GDB的相關問題。這么多年來,有一些問題是大家反復在問的,一方面,我覺得我以前的文章可能沒有說清楚,另一方面,我覺得大家常問的問題正是最有用的,所以,在這里羅列出來。希望大家補充。 一、多線程調試 多線程調試可能是問得最多的?!?/p>

    Linux干貨 2016-07-11
  • 分析命令中含有e2fs

    分析命令中含有e2fs 目  錄 1、mke2fs  2、tune2fs 3、dump2fs 4、e2fsck 這周學到了幾條命令,超級納悶為什么這些命令都帶有e2fs ,看不懂。畢竟在我的認知中linux的命名大部分都是見名知義,例如history(查看歷史命令),fdisk (分區),反觀這些命令很長而且還是奇怪的…

    Linux干貨 2017-08-20
欧美性久久久久