Linux文本處理工具grep,egrep

簡介:

    grep即(Global search REgular expression and Print out the line)全局的搜索正則表達式并且打印顯示出來。

    通俗點講:根據用戶指定的文本模式(搜索條件)對目標文件進行逐行搜索,顯示能匹配到的行。

        

    正則表達式:

        正則表達式是一類字符所書寫的模式,其中許多字符不表示其字面意義,而是表達控制或通配等功能;

        元字符:不便是其字面意思,而用于額外功能性描述

            

    基本正則表達式的元字符:

        字符匹配:

             .:匹配任意單個字符

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

            [0-9],[[:digit:]]:任意單個數字

            [a-z],[[:lower:]]:任意單個小寫字母

            [A-Z],[[:upper:]]:任意單個大寫字母

            [[:space:]]:空白字符

            [[:punct:]]:標點符號

            [[:alpha:]]:所有大小寫字母

            [[:alnum:]]:所有數字字母

            [^]:取反

       次數匹配:

            用于實現指定其前面的字符所能出現的次數

            *:任意長度,它前面的字符可以出現任意次

            \?:出現0次或者1次,也就是說它前面的字符是可有可無的

            \{m\}:m次,它前面的字符要出現m次

            \{m,n}:至少m次,至多n次(m<n)

            \{m,\}:至少m次

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

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

        位置錨定:

            ^:行首錨定,寫在模式最左側

            $:行尾錨定,寫在模式最右側

            ^$:空白行

            \<:詞首錨定,出現于單詞左側

            \>:詞尾錨定,出現于單詞右側

            \b:詞首詞尾都可以

            (注:不包含特殊字符的連續字符組成的串叫單詞)

        分組:

            \(\)    例如:\(ab\)*

            注:分組中的模式匹配到的內容,可由正則表達式引擎記憶在內存中,之后可被多次引用

        

        引用:

            \n:引用第n個括號所匹配到的內容,而非模式本身

        

    擴展正則表達式:

        字符匹配:

            .:任意單個字符

            []:匹配任意字符范圍內

            [^]:匹配任意范圍外

        次數匹配:

            *:任意次

            ?:0次或1次

            +:至少1次

            {m}:精確匹配m次

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

            {m,}:至少m次

            {0,n}:至多n次

        錨定

            ^:行首

            $:行尾

            \<,\b:詞首

            \>,\b:詞尾

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

        分組:

            ()

        引用:

            \n

        或者:

            a|b:a或b

        

    grep的用法:

        grep [option]… ‘PATTERN' FILE…

        grep的命令選項:

            -v:去反向選取

            -o:僅顯示匹配的字串本身,而非字串所在的行

            -i:ignore-case,忽略字符大小寫

         

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

            -A:顯示之前兩行

            -B:顯示之后兩行

            -C:顯示上下兩行

    egrep:egrep用法等同于grep -E


實戰操作:

    1.顯示/proc/meminfo文件中以大寫或小寫S開頭的行;

QQ截圖20150508141815.png

QQ截圖20150508142408.png

    2.顯示/etc/passwd文件中其默認shell為非/sbin/nologin的用戶;

QQ截圖20150508143022.png

    3.顯示/etc/passwd文件中其默認shell為/bin/bash的用戶;進一步;僅顯示上述結果中ID號最大的用戶;

QQ截圖20150508143526.png

    4.找出/etc/passwd文件中的一位數或兩位數;    

        

QQ截圖20150508144148.png

     5.顯示/boot/grub/grub.conf中以至少一個空白字符開頭的行;

QQ截圖20150508144445.png

    6.找出netstat -tan命令執行結果中以‘LISTEN’結尾的行;

QQ截圖20150508144731.png

    7.找出ifconfig命令結果中1-255之間的數字;         

QQ截圖20150508150110.png    8.顯示當前系統上root或git用戶的默認shell;

QQ截圖20150508152016.png

    9.使用echo命令輸出一個路徑,而后使用grep取其基名

QQ截圖20150508152710.png

原創文章,作者:水蒸氣,如若轉載,請注明出處:http://www.www58058.com/4148

(0)
水蒸氣水蒸氣
上一篇 2015-05-11
下一篇 2015-05-11

相關推薦

  • 高級變量-有類型變量

    一.高級變量用法– 有類型變量   Shell 變量一般是無類型的,但是bash Shell 提供了declare和 typeset 兩個命令用于指定變量的類型,兩個命令是等價的 declare [ 選項]  變量名 -r  將變量設置為只讀屬性 -i  將變量定義為整型數 -a  將變量定義為數…

    Linux干貨 2016-11-24
  • linux基礎入門之二

    linux基礎入門之二 1、Linux上的文件管理類命令都有哪些,其常用的使用方法及其相關示例演示。 1.cp文件復制: 常用選項: -i:交互式復制,即覆蓋之前提醒用戶確認; -f:強制覆蓋目標文件; -r, -R:遞歸復制目錄; -d:復制符號鏈接文件本身,而非其指向的源文件; -a:-dR –…

    Linux干貨 2016-09-26
  • linux磁盤管理及其磁盤分區工具的使用

    一、 幾種分區工具: 1.圖形化工具gnome-disks使用簡單,在此不在贅述。 2.fdisk使用: fdisk支持MBR,也支持GPT分區,對于一塊硬盤最多只能理解15個分區,一般使用fdisk做MBR分區,gdisk做GPT分區。下面為fdisk分區示例: [root@centos7 ~]# fdisk /dev/sde…

    Linux干貨 2016-08-29
  • 以后的運維是linux系統的天下

       搞IT行業差不多10年了,也接觸過網絡設備的配置,比如防火墻和交換機的管理,也管理過虛擬化平臺,比如vmware的虛擬化,還懂一些簡單的oracle數據庫的安裝,存儲、光釬交換機的配置等,因為曾經在傳統企業做過8年多的網管,當時的企業規模也是比較大,也接觸了很多設備,但就是linux接觸的不是很多,后來去一家公司做系統集成,也是什么…

    Linux干貨 2016-10-19
  • sed命令使用

    一、sed簡介    sed是一種在線編輯器,一次處理一行內容。處理時,把當前處理的行存儲在歷史緩沖區,傳給“模式空間”(pattern space),接著用sed命令處理緩沖區中的內容,處理完成后,把緩沖區的內容送往屏幕。接著處理下一行,這樣不斷重復,直到文件末尾。文件內容并沒有改變,除非使用重定向存儲輸出。sed主要用來自動編輯一個或…

    Linux干貨 2016-08-12
  • 掛載

    掛載的相關介紹

    Linux干貨 2017-12-10
欧美性久久久久