正則表達式及grep過濾工具的簡單介紹


正則表達式:Regular regexp)

regexp:

basic regexp:基本正則表達式

extended regexp:擴展正則表達式

通過使用正則表達式,可以:

1、測試字符串內的模式;

2、可以使用正則表達式來識別文檔中的特定文本,完全刪除該文本或者用其他文本替換它

3、基於模式匹配從字符串中提取字符串或刪除被模式匹配到的字符串

基本正則表達式 (basic regexp) :

元字符:

字符匹配:

.:匹配任意單個字符

[]:指定範圍內的任意單個字符

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

匹配次數(貪婪模式)

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

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

?:匹配其前的字符0次或1次

\{m,n\}:指定其前面的字符至少出現m次,至多出現n次

\{m,\}:指定其前面的字符至少出現m次,最多不限

位置錨定符:

^:錨定行首,

$:錨定行尾

^$:錨定空白行

\<:錨定詞首    例如:grep "\<r..t" /etc/passwd

\>:錨定詞尾    例如:grep "r..t\>" /etc/passwd

\(\):分組

引用: \1:  第一個左括號以及與之對應的右括號包含的所有內容

 \2:  第二個左括號以及與之對應的右括號包含的所有內容

擴展正則表達式 (extended regexp):

字符匹配:

.:匹配任意單個字符

[]:指定範圍內的任意單個字符

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

次數匹配:

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

?:匹配其前的字符0次或1次

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

{m,n}:

位置錨定符:

^:錨定行首,

$:錨定行尾

^$:錨定空白行

\<:錨定詞首    例如:grep "\<r..t" /etc/passwd

\>:錨定詞尾    例如:grep "r..t\>" /etc/passwd

():分組

引用:\1,\2  ....

\1:  第一個左括號以及與之對應的右括號包含的所有內容

\2:  第二個左括號以及與之對應的右括號包含的所有內容

|:或者     例如:      a|b   :a或者b

C|cat :C或cat     (C|c)at:Cat或cat

grep:根據模式搜索文本,並將符合模式的文本行顯示出來。

grep [options] PATTERN file ...

例如:顯示/etc/passwd文件下包含了root字符串的行:grep 'root' /etc/passwd

grep選項:

-i:忽略大小寫

--color:加上顏色

-v:反向查找 即顯示沒有被模式匹配到的行

-o:只顯示被模式匹配到的字符串

-E:使用擴展正則表達式

-A:表示當某行被grep所指定的模式匹配到以後,不但顯示這一行,還顯示這一行的後幾行。通常後面跟數值

-B:表示當某行被grep所指定的模式匹配到以後,不但顯示這一行,還顯示這一行的前幾行。通常後面跟數值

-C:表示當某行被grep所指定的模式匹配到以後,不但顯示這一行,還顯示這一行的前後幾行。通常後面跟數值

示例:

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章