您好,登錄后才能下訂單哦!
grep系:grep,egrep,fgrep,文本搜索工具,基于PATTERN對(duì)于給定的文本進(jìn)行模糊搜索,grep系默認(rèn)工作于貪婪模式下。
grep:
grep [OPTIONS] PATTERN [FILE...]
PATTERN:過濾條件,是由正則表達(dá)式元字符以及沒有特殊含義的文本字符組成。
正則表達(dá)式元字符:
會(huì)被正則表達(dá)式引擎解釋為特殊含義。 pcre——perl語言的正則表達(dá)式引擎。
基本的正則表達(dá)式:BRE
擴(kuò)展的正則表達(dá)式:ERE
grep默認(rèn)僅支持基本正則表達(dá)式
egrep默認(rèn)僅支持?jǐn)U展正則表達(dá)式
fgrep默認(rèn)不開啟正則表達(dá)式引擎
文本字符:
只具備字符片面含義的那些字符
常用選項(xiàng):
-i, --ignore-case 忽略文本字符的大小寫
-v, --invert-match 反向匹配,最終顯示的結(jié)果是PATTREN不能匹配的行
-c, --count 統(tǒng)計(jì)匹配PATTERN的所有的行數(shù)
-o, --only-matching 關(guān)閉貪婪模式,僅顯示PATTERN能匹配的內(nèi)容
-q, --quiet, --silent 不輸出任何匹配結(jié)果
--color[=WHEN], --colour[=WHEN] 將匹配的PATTREN的內(nèi)容以特殊顏色顯示
-E, --extended-regexp 擴(kuò)展的正則表達(dá)式 grep-E 相當(dāng)于egrep
-F, --fixed-strings, --fixed-regexp 相當(dāng)于fgrep
-G, --basic-regexp 基本的正則表達(dá)式,egrep -G相當(dāng)于grep
-P, --perl-regexp 使用PCRE引擎
-A NUM, --after-context=NUM 在顯示匹配PATTERN的行同時(shí)顯示其后面的NUM行
-B NUM, --before-context=NUM
PATTERN;
正則表達(dá)式元字符:
基本正則表達(dá)式元字符:
GLOBBING-------簡化版的正則表達(dá)式: [] ? *
字符匹配:
.:匹配任意單個(gè)字符
[]:匹配指定范圍內(nèi)的任意單個(gè)字符
[^]:匹配指定范圍以外的任意單個(gè)字符
下列所有的字符集都可以放置于[]之中匹配單個(gè)字符
[:lower:]
[:upper:]
[:alpha:]
[:digit:]
[:space:] 空格
[:alnum:]
[:punct:]
[:blank:]
[:xdigit:]:所有的十六進(jìn)制數(shù)字
a-z:所有的小寫字母
A-Z:所有的大寫字母
0-9:所有的十進(jìn)制數(shù)字
次數(shù)匹配: 該類字符之前的那個(gè)字符可以出現(xiàn)的次數(shù)
*:其前面的字符可以出現(xiàn)任意次(0次,1次或多次)
\?:其前面的字符可有可無(0次或一次)
\+:其前面的字符至少出現(xiàn)一次(1次或多次)
\{m\}:其前面的字符必須出現(xiàn)m次
\{m,n\}:至少出現(xiàn)m次,至多出現(xiàn)n次 (m<n)
\{,n\}:其前面字符至多出現(xiàn)n次,至少出現(xiàn)0次
\{m,\}:其前面字符至少出現(xiàn)m次
在正則表達(dá)式中,表示任意長度任意字符的方式:.*
位置錨定字符:
行錨定:
行首錨定:^
行尾錨定:$
字錨定:
字首錨定:\<或\b
字尾錨定:\>或\b
\b:舊版本中的錨定方法,建議不使用
對(duì)于正則表達(dá)式的引擎來說,字是由特殊字符組成的連續(xù)字符串
分組與引用字符:
\(PATTERN\):將此PATTERN所匹配到的所有字符當(dāng)做一個(gè)不可分割的整體來處理。
在正則表達(dá)式引擎中,有一系列內(nèi)置變量,這些變量會(huì)保存所有分組內(nèi)的字符信息,用于反向引用,這些變量依次是:\1,\2,\3...
..
或:
\|
注意:\|將其左右兩邊的字符串當(dāng)整體對(duì)待。
A\|american:A或american
請(qǐng)找出ifconfig命令中數(shù)值在100-255之間的整數(shù):
第一位:1 2
第二位:0-9 0-4 5
第三位:0-9 0-9 0-5
ifconfig | grep '\<\(1[0-9][0-9]\|2[0-4][0-9]\|25[0-5]\)\>'
grep [OPTIONS] [-e PATTERN | -f FILE] [FILE...]
默認(rèn)情況下,grep命令后面只允許有一個(gè)PATTERN;
如果想要在依次grep搜索中寫多個(gè)PATTERN,則需要-e選項(xiàng),每個(gè)-e選項(xiàng)只能使用一個(gè)PATTERN作為參數(shù);
將所需要的PATTERN寫入到一個(gè)文件中,保證每行只有一個(gè)PATTERN,我們就可以使用-f的方式實(shí)現(xiàn)多PATTERN的匹配;
egrep: 下列用法和grep一樣
擴(kuò)展的正則表達(dá)式元字符:
字符匹配:
.
[]
[^]
次數(shù)匹配:
*
?
+
{m}
{m,n}
{m,}
{0,n}
位置錨定:
^
$
\<,\b
\>,\b
分組和引用:
()
\1,\2,\3...
或:
|
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請(qǐng)聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。