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
下一篇 2017-04-06

相關推薦

  • linux bassic Week 5 Blogging

    linux bassic Week 5 Blogging 1、顯示/boot/grub/grub.conf中以至少一個空白字符開頭的行; ~]# grep -E "^[[:space:]]+" /boot/grub/grub.conf  root (hd0,0) kernel&n…

    Linux干貨 2017-01-05
  • N25-第七周博客作業

    1、創建一個10G分區,并格式為ext4文件系統; (1) 要求其block大小為2048, 預留空間百分比為2, 卷標為MYDATA, 默認掛載屬性包含acl;(2) 掛載至/data/mydata目錄,要求掛載時禁止程序自動運行,且不更新文件的訪問時間戳; 查看當前分區情況 [root@han ~]# fdisk -l Disk /dev/sda: 42…

    Linux干貨 2017-02-23
  • N25第九周作業

    1、寫一個腳本,判斷當前系統上所有用戶的shell是否為可登錄shell(即用戶的shell不是/sbin/nologin);分別這兩類用戶的個數;通過字符串比較來實現; #!/bin/bash declare -a usersh nologin=0 login=0 usersh=($(cut -d’:’ -f7 /etc/passwd)) ##數組賦值時需…

    Linux干貨 2017-03-04
  • 六步建立yum倉庫

    建立yum倉庫

    Linux干貨 2018-03-26
  • N25-第六周作業

    第6周作業 — 請詳細總結vim編輯器的使用并完成以下練習題 vim是模式化的全屏文本編輯器。vim分為三種模式:分別是編輯模式;輸入模式;末行模式; 打開文件的方式有:vim +# FILE打開文件FILE并把光標定位到#行的行首;vim +/PATTERN FILE打開文件并讓光標處于第一個被PATTERN匹配到的行的行首。(支持正則表達式)…

    Linux干貨 2017-02-22
  • Linux下編譯安裝httpd

    本章學習內容         ———介紹httpd         ———-rpm和yum不同   &nbs…

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