13grep和正則表達式

grep:Global search REgular expression and Print out the line . 文本過濾工具,根據用戶指定的模式對目標文本進行匹配檢查;打印匹配到的行。過濾即不改變原來文本數據。

grep [options] PATTERN [file…]

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

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

-i:忽略大小寫

-n:顯示匹配的行號

-c:統計匹配的行數

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

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

-A #:after,后#行一并顯示

-B #:before,前#行一并顯示

-C #:context,前后#行一并顯示

-e:實現多個選擇間的邏輯或關系–> grep -e ‘cat’ -e ‘dog’ file

grep的PATTERN 支持正則表達式,支持正則表達式的還有 vim,less,nginx等

正則表達式:regexp,由一類特殊字符及文本字符所編寫的模式,其中有些字符不表示字符字面意義,而表示控制或通配的功能

正則表達式有基本正則表達式(BRE)和擴展正則表達式(ERE)兩種,元字符分類則有四種:字符匹配、匹配次數、位置錨定和分組

字符匹配:

. 表示匹配任意單個字符

[] 表示匹配指定范圍內的任意單個字符

[^] 表示匹配指定范圍外的任意單個字符

[:alnum:] 字母和數字

[:alpha:] 英文字母

[:lower:] [:upper:]  大、小寫字母

[:blank:] (空格和制表符tab)

[:space:] 垂直和水平的空白字符(比[:blank:]包含的范圍廣)

[:cntrl:] 不可打印的控制字符(退格、刪除、警鈴。。。)

[:digit:] [:xdigit:] 十進制數字,十六進制數字

[:graph:] 可打印的非空白字符

[:print:] 可打印的字符

[:punct:] 標點符號

匹配次數:

* 匹配前面的字符任意次,包括0次。在貪婪模式下:即盡可能長的匹配

.* 任意長度的任意字符

\? 匹配器前面的字符 0或1次

\+ 匹配其前面的字符至少一次

\{n\} 匹配前面的字符n次

\{m,n\}匹配其前面的字符至少m次,至多n次

位置錨定:

^ 行首錨定

$ 行尾錨定

^pattern 用于模式匹配整行 ^$ 空行  ^[[:space:]]*$  空白行

\<,\b 詞尾錨定

\>,\b 詞首錨定

\<pattern\> 匹配整個單詞

分組:

\(\) 將一個或多個字符捆綁在一起當做一個整體進行處理,eg:\(root\)\+

分組括號中的的模式匹配到的內容會被正則表達式引擎記錄與內部的變量中,這些變量的命名方式為:\1,\2,\3,…

\1 表示從坐騎第一個左括號以及與之匹配的右括號之間的模式所匹配到的字符

示例:\(string1\+\(string2\)*\)

\1 :string1\+\(string2\)*

\2 :string2

后向引用:引用前面的分組括號中的模式所匹配字符,而非模式本省

egrep及擴展正則表達式

egrep = grep -E 

egrep [options] pattern [file…]

擴展正則表達式的元字符:

字符匹配:

.

[]

[^]

次數匹配:

*

?

+

{m}

{m,n\}

位置錨定:

^

$

\<,\>,\b

分組:

()

后向引用:\1,\2…

或者:

a|b : a 或b

C|cat :C 或者cat

(C|c)at: Cat或者cat

—-joker的部落閣

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

(0)
jokerjoker
上一篇 2016-11-27 22:52
下一篇 2016-11-27 22:56

相關推薦

  • Linux軟件包管理(YUM)及編譯安裝

    YUM 一、yum安裝使用: 1、Yum:rpm的前端程序,用來解決軟件包相關依賴性,可以在多個庫之間定位軟件包,up2date的替代工具 2、yum repository:yum repo,存儲了眾多rpm包,以及包的相關的元數據文件(放置于特定目錄repodata下) 3、yum客戶端配置文件: /etc/yum.conf:為所有倉庫提供公共配置 /et…

    Linux干貨 2016-08-26
  • 進程管理

    1、ps命令 查看當前時刻的進程狀態,通過此命令可以確定有哪些進程正在運行和運行的狀態、進程是否結束、進程有沒有僵死、哪些進程占用了過多的資源等等 進程狀態:     運行態:running     就緒態:ready     睡眠態: &…

    Linux干貨 2016-09-10
  • 初識linux文件管理

    初識linux文件管理 1.文件系統與目錄結構 文件系統從根目錄 下開始,用“/”。 以. 開頭的文件為隱藏文件,路徑分隔用/表示。文件系統的層級結構是LSB(linux standard base),遵循文件系統層級標準(FHS ) 文件命名規則:   文件名最長255個字節,包括路徑名在內共4095個字節  &nb…

    2017-02-18
  • linux之文本處理工具

    今天來聊一聊關于linux中處理shell的文本工具,主要說說以下命令:  · 文件查看命令:cat、tac、  · 分頁查看文件內容:more、less  · 顯示文本前行或后行內容:head、tail  · 按列抽取文本:cut  · 合并文件:paste  · 文…

    2017-07-29
  • MySQL/MariaDB DML操作之Select

    前言 上文我們已經講解了MySQL/MariaDB的基礎知識和DDL相關操作,接下來我們來說一下MySQL/MariaDB的DML操作,因select查詢較復雜也較重要,所以本文主要是對select查詢的詳解。 DML操作 DML之select 投影查詢 select col_name,[col_name1,…] from …

    Linux干貨 2015-05-07
  • 馬哥教育網絡班20期+第6周練習博客

    請詳細總結vim編輯器的使用并完成以下練習題 1、復制/etc/rc.d/rc.sysinit文件至/tmp目錄,將/tmp/rc.sysinit文件中的以至少一個空白字符開頭的行的行首加#; [root@bogon ~]# cp /etc/rc.d/rc.sysinit  /tmp/rc.sysinit […

    Linux干貨 2016-07-22
欧美性久久久久