文本處理工具之grep

三劍客之grep

grep是Linux下處理文本的命令,與sed和awk合稱Linux三劍客。grep在man手冊中的解釋為打印匹配到的模式,grep真正強大之處在于支持正則表達式,下面介紹grep常用的選項。

–color=auto: 對匹配到的文本著色顯示

此選項在centos7中默認別名并且添加到配置文件中,centos6中可以使用別名添加到~/.bashrc中,添加別名的方法為alias grep=”grep –color=auto”

-v: 顯示不被pattern匹配到的行

此選項可簡單理解為取反,但需注意的是”取反”是以行為單位的。在同一行”取反”一般不會有效果。

-i: 忽略字符大小寫

在Linux中是嚴格區分大小寫的,此選項可以實現同時匹配相同字符串的大小寫,例如grep -i “ROOT” /etc/passwd,結果會把passwd文件中包含”ROOT”和”root”的行都顯示出來。

-n:顯示匹配的行號

會把顯示的文件內容進行編上行號,而不是修改文件的內容。

-c: 統計匹配的行數

此選項的結果為一個數字,表示匹配到的行數,而不顯示具體是哪些行被匹配到。

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

此選項只顯示匹配到的部分,而且字體是帶有顏色的。

-q: 靜默模式,不輸出任何信息

匹配到還是匹配不到都不顯示,只在后臺反應,使用$?來從返回值判斷命令是否正確執行

-A#: after, 后#行

顯示匹配到行的后#行,不包括匹配到的行。

-B#: before, 前#行

顯示匹配到行的前#行,不包括匹配到的行。

-C#:context, 前后各#行

顯示匹配到行的前后各#行,不包括匹配到的行。

-e:實現多個選項間的邏輯or關系

grep –e root ?–e bash /etc/passwd包含root或者bash的行。

-w:匹配整個單詞

grep默認字母、數字、下劃線為單詞的一部分,不予匹配。

例如:

echo xabcy|grep -w abc(不匹配)

echo “x abc y”|grep -w abc(匹配)

echo “x,abc,y”|grep -w abc(匹配)

echo “x2abc3y”|grep -w abc(不匹配)

echo “x_abc_y”|grep -w abc(不匹配)

echo “x-abc-y”|grep -w abc(匹配)

-E:使用ERE(使用擴展的正則表達式)

-F:相當于fgrep,不支持正則表達式

-f 把過濾的類型添加到文件中進行匹配

例如新建p.txt文件,添加root bash,使用grep -f p.txt /etc/passwd進行匹配文件內的字符,相當于-e選項。

以上就是grep的常用選項。如還想對grep進行更深入的了解可以使用man grep進行查看。

本文來自投稿,不代表Linux運維部落立場,如若轉載,請注明出處:http://www.www58058.com/95397

(0)
七殺七殺
上一篇 2018-04-08 15:53
下一篇 2018-04-08 16:00

相關推薦

  • 文本三劍客之sed

    我們知道,sed被稱為Linux中被稱為文本處理三劍客之一,相比于grep命令匹配內容的功能,sed則能夠做到對匹配到的文本內容對其進行編輯。

    2018-04-15
  • 詳述iptables五鏈????????????

    詳述iptables五鏈??????????????????????????????????????????

    Linux筆記 2018-07-28
  • Linux任務計劃、周期性任務執行

    Linux任務計劃、周期性任務執行 at at命令用于在指定時間執行命令。執行結果會通過郵件發送給用戶 at允許使用一套相當復雜的指定時間的方法。它能夠接受在當天的hh:mm(小時:分鐘)式的時間指定。假如該時間已過去,那么就放在第二天執行 語法 at(選項)(參數) atq: 查詢任務列表 atrm: 刪除指定任務 選項 -f:指定包含具體指令的任務文件;…

    Linux筆記 2018-04-03
  • LAMP的實現

    php的兩種工作模式一種以模塊方式;一種以fcgi方式

    2018-06-23
  • Linux計算MD5和Sha1的命令

    Linux計算MD5和Sha1的命令

    Linux筆記 2018-06-07
  • 網絡管理基礎

    1.PDU: Protocol Data Unit,協議數據單元是指對等層次之間傳遞的數據單位 ?物理層的 PDU是數據位 bit ?數據鏈路層的 PDU是數據幀 frame ?網絡層的PDU是數據包 packet ?傳輸層的 PDU是數據段 segment ?其他更高層次的PDU是消息 message 2.TCP特性工作在傳輸層 ?面向連接協議 ?全雙工協…

    Linux筆記 2018-05-02
欧美性久久久久