文本處理工具之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
下一篇 2018-04-08

相關推薦

  • linux sed用法總結

    處理文本的工具sed?Stream EDitor, 行編輯器?sed是一種流編輯器,它一次處理一行內容。處理時,把當前處理的行存儲在臨時緩沖區中,稱為“模式空間”(pattern space),接著用sed命令處理緩沖區中的內容,處理完成后,把緩沖區的內容送往屏幕。然后讀入下行,執行下一個循環。如果沒有使諸如‘D’的特殊命令,那會在兩個循環之間清空模式空間,…

    Linux筆記 2018-04-15
  • linux

    系統和硬件時間

    2018-04-07
  • yum源搭建

    本地yum源搭建,網絡yum源搭建

    Linux筆記 2018-04-21
  • 新建虛擬機+安裝Centos7

    一、基本環境 筆記本電腦:widows 7 虛擬機版本:vmware workstation 12 鏡像版本:CentOS-7-x86_64-Everything-1804 下載地址:mirrors.aliyun.com www.centos.org 一、新建虛擬機 1.創建虛擬機 2.選擇“典型”,點擊下一步。 3.選擇“稍后安裝系統”,點擊下一步。 4.…

    2018-07-22
  • shell編程基礎一

    變量 算術|字符|條件測試

    2018-04-10
  • K8S的安裝

    使用kubeadm安裝部署kubernetes集群: 前提:1、各節點時間同步;2、各節點主機名稱解析:dns OR hosts;3、各節點iptables及firewalld服務被disable; 一、設置主節點安裝程序包 1、生成yum倉庫配置: 主管理節點上的yum倉庫的配置: 先配置安裝docker倉庫: [docker]name=dockerbas…

    2018-08-08
欧美性久久久久