grep與正規表示式

2021-09-28 14:43:49 字數 3310 閱讀 8940

grep全稱為global search regular expression and print out the line,此命令是在linux中

著名的文字三劍客之一,本命令可用於列印出檔案中匹配的內容,複雜的匹配內容可以使用正規表示式來實現。

grep [option]… pattern [file]…

選項

說明–color=auto

對匹配到的文字著色顯示,grep預設匹配到的文字是著色的

-m #

匹配#次後停止

-v顯示不被匹配到的行

-i忽略字元大小寫

-n顯示匹配到的行號

-c統計匹配到的行號

-o僅顯示匹配到的字串

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

-a #

after,後#行

-b #

before,前#後

-c #

context,前後各#行

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

-w匹配到整個單詞

-e使用ere(支援擴充套件正規表示式)

-f相當於fgrep,不支援正規表示式

-ffile根據模式檔案處理

例1、grep -m

例2、grep -o 與grep -v

例3、grep -i

例4、grep -n 與grep -c

例5、grep -a grep-b 與grep -c

例6、grep -e

例7、grep -w

正規表示式(regular expression)通常被用來檢索、替換那些符合某個模式(規則)的文字。正規表示式使用廣泛,在各種程式語言中都有對應的庫,linux中很多命令都支援正規表示式,比如前面介紹的grep命令。正規表示式有兩種:正規表示式和擴充套件正規表示式,兩者相差不多。正規表示式的元字元從功能上可以分為四種:字元匹配、次數匹配、位置錨定、分組和邏輯組合。

格式說明

.匹配任意單個字元

匹配指定範圍內的任意單個字元,示例:[wang] [0-9] [a-z] [a-za-z]

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

[:alnum:]

字母和數字

[:alpha:]

代表任何英文大小寫字元,亦即 a-z, a-z

[:lower:]

小寫字母

[:upper:]

大寫字母

[:blank:]

空白字元(空格和製表符)

[:space:]

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

[:cntrl:]

不可列印的控制字元(退格、刪除、警鈴…)

[:digit:]

十進位制數字

[:xdigit:]

十六進製制數字

[:graph:]

可列印的非空白字元

[:print:]

可列印字元

[:punct:]

標點符號

匹配次數:用在要指定次數的字元後面,用於指定前面的字元要出現的次數

格式說明

*匹配前面的字元任意次,包括0次 貪婪模式:盡可能長的匹配

.*任意長度的任意字元

\?匹配其前面的字元0或1次

\+匹配其前面的字元至少1次

\匹配前面的字元n次

\匹配前面的字元至少m次,至多n次

\匹配前面的字元至多n次

\匹配前面的字元至少n次

位置錨定:定位出現的位置

格式說明

^行首錨定,用於模式的最左側

$行尾錨定,用於模式的最右側

^pattern$

用於模式匹配整行

^$空行

^[[:space:]]*$

空白行\< 或 \b

詞首錨定,用於單詞模式的左側

\> 或 \b

詞尾錨定,用於單詞模式的右側

\匹配整個單詞

分組:\(\) 將乙個或多個字元**在一起,當作乙個整體處理

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

\1 表示從左側起第乙個左括號以及與之匹配右括號之間的模式所匹配到的字元 後向引用:引用前面的分組括號中的模式所匹配字元,而非模式本身

或者:\|

示例:a\|b     a或b

c\|cat     c或cat

\(c\|c\)at  cat或cat

.   任意單個字元

指定範圍的字元

[^] 不在指定範圍的字元

*       匹配前面字元任意次

?       0或1次

+      1次或多次

匹配m次

至少m,至多n次

^     行首

$     行尾

\\>, \b   語尾

分組 :() 後向引用:\1, \2, …

或者:|

a|b a或b

c|cat c或cat

(c|c)at cat或cat

例1、匹配單個字元

例2、用正規表示式和擴充套件正規表示式取出ifconfig中的ip位址

例3、\《和\>

grep與正規表示式

grep命令 功能 輸入檔案的每一行中查詢字串。基本用法 grep acinv color auto a n b n 搜尋字串 檔名 引數說明 a 將二進位制文件以文字方式處理 c 顯示匹配次數 i 忽略大小寫差異 n 在行首顯示行號 a after的意思,顯示匹配字串後n行的資料 b before...

grep與正規表示式

正規表示式只是字串的一種描述,只有和支援正規表示式的工具相結合才能進行字串處理。本文以grep為例來講解正規表示式。grep命令 功能 輸入檔案的每一行中查詢字串。基本用法 grep acinv color auto a n b n 搜尋字串 檔名 引數說明 a 將二進位制文件以文字方式處理 c 顯...

grep與正規表示式

grep 及正規表示式 文字查詢的需要,grep,egrep,fgrep grep 根據模式,去搜尋文字,並將符合模式的文字行顯示到螢幕 pattern 文字字元和正規表示式的元字元組合而成的匹配條件 grep options pattern file.grep color root etc pas...