grep命令和正規表示式

2021-07-16 01:19:32 字數 2583 閱讀 4108

本文講解grep命令和簡單的正規表示式應用。

格式:grep [options] 'pattern' file,...

--color=auto

grep boot /etc/rc.d/rc.sysinit

grep --color=auto boot /etc/rc.d/rc.sysinit

模式中出現元字元,需要使用引號,單引號或者雙引號都可以;如果使用變數替換,使用雙引號

grep --color=auto 'r..t' /etc/passwd

grep --color=auto 'x*y' grep.txt

grep --color=auto 'x\?y' grep.txt

grep --color=auto 'x\y' grep.txt

grep --color=auto 'x\y' grep.txt

grep --color=auto 'x\y' grep.txt

grep --color=auto 'x\y' grep.txt

grep --color=auto '[rr]..[tt]' /etc/passwd

grep --color=auto '[rr].*[tt]' /etc/passwd

grep --color=auto '[rr][^[:punct:]][tt]' /etc/passwd

grep --color=auto '^[rr][^[:punct:]][tt]' /etc/passwd

grep --color=auto 'bash$' /etc/passwd

grep --color=auto '^$' /etc/rc.d/rc.sysinit | wc -l

grep --color=auto -v '^$' /etc/rc.d/rc.sysinit | wc -l

grep --color=auto '^\<[rr][^[:punct:]][tt]' /etc/passwd

alias grep=`grep --color=auto` (命令別名,以後就不用輸入--color=auto選項了)

字元匹配:

.: 任意單個字元

: 指定範圍內的任意單個字元

[0-9], [[:digit:]]數字

[a-z], [[:lower:]]小寫

[a-z], [[:upper:]]大寫

[:alnum:] 英文大小寫及數字

[:alpha:] 英文大小寫

[:blank:] 空格 和 tab

[:graph:] 除去 空格和tab

[:punct:] 標點符號

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

次數匹配:用來指定匹配其前面的字元的次數

*: 任意次

例子:x*y ---> ***y, xxy, xy, y

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

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

x\?y ---> y, xy, xxy, ***y

\: 匹配m次

\: 匹配m次到n次

\: 至少m次;

\:至多n次;

位置錨定:用於指定字元出現的位置

^: 錨定行首

^char

$: 錨定行尾

char$

^$: 空白行

\: 錨定詞尾,等價於char\b

分組:\(\)

\(ab\)*xy

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

\2:\3:

...\(a.b\)xy\1

---> a6bxya6b (可以) a6bxya7b(不可以)

grep 常用選項:

-v: 反向,顯示不能被模式所匹配到的行;

-o: 僅顯示被模式匹配到的字串,而非整行;

-i: 不區分字元大小寫, ignore-case

-e: 支援擴充套件的正規表示式

-a(after) #: 顯示被模式匹配到的行以及後面的#行

-b(before) #: 顯示被模式匹配到的行以及前面的#行

-c(context) #: 顯示被模式匹配到的行以及前面的#行和後面的#行

egrep: 使用擴充套件正則表達來構建模式,相當於grep -e

元字元:

字元匹配:

.: 任意單個字元

: 指定範圍內的任意單個字元

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

次數匹配:

*:匹配其前面的字元任意次;

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

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

: 匹配其前面的字元m次;

: 至少m次,至多n次

: 至少m次;

:至多n次;

錨定:^: 行首

$: 行尾

\<, \b: 詞首

\>, \b:詞尾

分組:(): 分組

|: 或者, ac|bc

grep -e "con(c|c)at"

conc或cat

concat或concat

grep和正規表示式

常用引數 f 規則檔案 file 規則檔案 指定規則檔案,其內容含有乙個或多個規則樣式,讓grep查詢符合規則條件的檔案內容,格式為每行乙個規則樣式。grep規則表示式 錨定行的開始 如 grep匹配所有以grep開頭的行 錨定行的結束,如 grep 匹配所有以grep結尾的行 匹配 乙個非換行符的...

grep和正規表示式

grep語法 正規表示式元字元 擴充套件正規表示式元字元 grep grep global search regular expression re and print out the line 是一款文字過濾 模式 pattern 工具。作用 文字搜尋工具,根據使用者指定的 模式 對目標文字逐行進...

正規表示式和grep

正規表示式 regular expression,re 是一種字元模式,用於在查詢過程中匹配指定的字元。在大多數程式裡,正規表示式都被置於兩個正斜槓之間 例如 lv o0 e 就是由正斜槓界定的正規表示式,它將匹配被查詢的行中任何位置出現的相同模式。在正規表示式中,元字元是最重要的概念。shell萬...