grep egrep命令用法

2022-03-22 18:17:34 字數 3181 閱讀 5284

何謂正規表示式

正規表示式,又稱正規表示法、常規表示法(regular expression,在**中常簡寫為regex、regexp或re),是一類字元所書寫的模式,其中許多字元不表示其字面意義,而是表達控制或通配等功能。正規表示式使用單個字串來描述、匹配一系列符合某個句法規則的字串。在很多文字編輯器裡,正規表示式通常被用來檢索、替換那些符合某個模式的文字。許多程式語言都支援利用正規表示式進行字串操作。

正規表示式語言由兩種基本字元型別組成:原義(正常)文字字元和元字元。元字元使正規表示式具有處理能力。所謂元字元就是指那些在正規表示式中具有特殊意義的專用字元,不表示其字面意義,而用於額外功能性描述。

正規表示式分類

正規表示式根據元字元的數量及功能不同又分為基本正規表示式(grep)和拓展正規表示式(egrep)。而grep和egrep同屬於文字搜尋工具,可根據使用者指定的文字模式(搜尋條件)對目標檔案進行逐行搜尋,顯示能匹配到的行。用法上grep –e等同於egrep,與grep和egrep相似的文字搜尋工具還有fgrep,因不支援使用正規表示式,所以不再單獨介紹。

基本正規表示式(grep)

語法格式:grep[option]... 'pattern' file...

基本正規表示式元字元:

1.字元匹配:

.:任意單個字元

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

[0-9]:匹配單個數字

[a-z]:匹配單個小寫字母

[a-z]:匹配單個大寫字母

[[:digit:]]:匹配單個數字

[[:lower:]]:匹配單個小寫字母

[[:upper:]]:匹配單個大寫字母

[[:space:]]:匹配單個空白字元

[[:punct:]]:匹配單個標點符號

[[:alnum:]]:匹配單個字母或數字

[[:alpha:]]:匹配單個字母(不分大小寫)

[^]:匹配範圍外的任意單個字元

2.次數匹配:

*:任意次(前面字元出現任意次)

\?:0次或1次(前面字元可有可無)

\: m次(前面字元出現m次)

\:至少m次,至多n次

\:至少m次

\:至多n次

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

3.位置錨定:

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

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

^$:空白行

\\>,/b:詞尾錨定(出現於單詞右側)

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

4.分組

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

(分組中的模式匹配到的內容,可由正規表示式引擎記憶在記憶體中,之後可被引用)

5.引用

\n:引用前面的第n個左括號以及與之對應的右括號中的模式所匹配到的內容

拓展正規表示式(egrep)

語法格式:egrep [option] 'pattern' file...

拓展正規表示式元字元:

1.字元匹配:

.:任意單個字元

[ ]:匹配範圍內的任意單個字元

[^]:匹配範圍外的任意單個字元

2.次數匹配:

*:任意次

?: 0或1次

+:至少1次

: m次

:至少m次,至多n次

:至少m次

:至多n次

3.位置錨定:

^:行首錨定

$:行尾錨定

\\>,\b:詞尾錨定

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

4.分組:

( ):分組

12347|:或 

5.引用:

\n:引用前面的第n個左括號以及與之對應的右括號中的模式所匹配到的內容

grep及egrep命令選項

-v: 反向選取

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

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

-a:顯示之後兩行

-b:顯示之前兩行

-c:顯示上下兩行

用法

顯示/proc/meminfo檔案中以大寫或小寫s開頭的行

顯示/etc/passwd檔案中其預設shell為非/sbin/nologin的使用者

顯示/etc/passwd檔案中其預設shell為/bin/bash的使用者中id號最大的使用者

找出/etc/passwd檔案中的一位數或兩位數

顯示/boot/grub/grub.conf中以至少乙個空白字元開頭的行

顯示/etc/rc.d/rc.sysinit檔案中,以#開頭,後面跟至少乙個空白字元,而後又有至少乙個非空白字元的行

找出netstat -tan命令執行結果中以'listen'結尾的行

找出當前系統上其使用者名稱和預設shell相同的使用者

顯示當前系統上root或scholar使用者的預設shell12

找出/etc/rc.d/init.d/functions檔案中某單詞後跟一組小括號「()」行

使用echo命令輸出乙個路徑,而後使用grep取出其基名

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

來自為知筆記(wiz)

Linux操作 grep egrep工具的使用

命令格式 grep cinvabc word filename,常用選項如下 說明 前面的數字顯示為綠色,表示行號。說明 只要有乙個數字就算匹配到了。說明 只要包含乙個數字,就不顯示。說明 這裡面是包含有空行的。在正規表示式中,表示行的開始,表示行的結尾,表示空行。如何列印出不以英文本母開頭的行?示...

grep,egrep,正規表示式

1 顯示 proc meminfo檔案中以大小s開頭的行 要求 使用兩種方法 grep s s proc meminfo grep s s proc meminfo cat proc meminfo grep i s cat proc meminfo grep 1 grep e s e s proc...

Grep egrep 與正規表示式

grep egrep 與正規表示式 原始出處 作者資訊和本宣告。否則將追究法律責任。首先要記住的是 正規表示式與萬用字元不一樣,它們表示的含義並不相同 正規表示式只是一種表示法,只要工具支援這種表示法,那麼該工具就可以處理正規表示式的字串。vim grep awk sed 都支援正規表示式,也正是因...