目錄
???????grep
通配符
正則表達(dá)式
grep
grep家族有三大成員分別為:
????????grep:支持使用基本正則表達(dá)式。
????????egrep:支持使用擴(kuò)展正則表達(dá)式。
????????fgrep:不支持使用正則表達(dá)式,即所有的正則表達(dá)式中的元字符都將作為一般字符,僅僅
擁有其字面意義,不再擁有特殊意義
?
grep命令的基本語法如下:grep [options] pattern [file…]
[options]選項(xiàng) | 作用 |
-n? |
顯示行號(hào) |
-o? |
只顯示匹配的內(nèi)容 |
-q |
靜默模式,沒有任何輸出,得用$?來判斷執(zhí)行成功沒有,即有沒有過濾到想要的內(nèi)容 |
-l |
如果匹配成功,則只將文件名打印出來,失敗則不打印,通常-rl一起用,grep -rl?'root' /etc |
-A? |
如果匹配成功,則將匹配行及其后n行一起打印出來 |
-B? |
如果匹配成功,則將匹配行及其前n行一起打印出來 |
-C |
如果匹配成功,則將匹配行及其前后n行一起打印出來 |
--color |
高亮顏色顯示匹配到的字符串 |
-c? |
如果匹配成功,則將匹配到的行數(shù)打印出來 |
-E? |
等于egrep,擴(kuò)展 |
-i? |
忽略大小寫 |
-v? |
取反,不匹配 |
-w |
匹配單詞 |
-r |
遞歸搜索,不僅搜索當(dāng)前目錄,還要搜索其各級(jí)子目錄 |
-s |
不顯示關(guān)于不存在或者無法讀取文件的錯(cuò)誤信息 |
通配符
通配符 | 作用 |
---|---|
* | 匹配任意長(zhǎng)度字符,可以是0個(gè) |
? | 匹配任意單個(gè)字符,必須是1個(gè) |
[ ] | 匹配指定字符范圍內(nèi)的任意單個(gè)字符 |
[a-z] | 表示a-z,A-Y,但不包含Z |
[ A-Z ] | 表示A,b,B.....z,Z,不包含a |
[ a-Z ] | 包含所有大小寫字母 |
[ :upper: ] | 所有大寫字母 |
[ :lower: ] | 所有小寫字母 |
[ :alpha: ] | 所有字母 |
[ :digit: ] | 所有數(shù)字 |
[ :blank: ] | 水平空白字符 |
[ :punct: ] | 標(biāo)點(diǎn)符號(hào) |
[ ^ ] | 匹配指定字符范圍外的任意單個(gè)字符 |
正則表達(dá)式
^ |
在每行的開始進(jìn)行匹配 |
$ |
在每行的末尾進(jìn)行匹配 |
. |
對(duì)任何單個(gè)字符進(jìn)行匹配 |
* |
對(duì)前一項(xiàng)進(jìn)行0次或多次重復(fù)匹配 |
[str] |
對(duì)str中的任何單個(gè)字符進(jìn)行匹配 |
[^str] |
對(duì)任何不在str中的單個(gè)字符進(jìn)行匹配 |
[a-b] |
對(duì)a到b之間的任何字符進(jìn)行匹配 |
\ |
忽略后面一個(gè)字符的特殊含義 |
+ |
對(duì)前一項(xiàng)進(jìn)行1次或多次重復(fù)匹配 |
? |
對(duì)前一項(xiàng)進(jìn)行0次或1次重復(fù)匹配 |
{j} |
對(duì)前一項(xiàng)進(jìn)行j次重復(fù)匹配 |
{j,} |
對(duì)前一項(xiàng)進(jìn)行j次或更多次重復(fù)匹配 |
{,k} |
對(duì)前一項(xiàng)最多進(jìn)行k次重復(fù)匹配 |
(s|t) |
匹配s項(xiàng)或t項(xiàng)中的一項(xiàng) |
[[:alnum:]] |
匹配任意一個(gè)字母或者數(shù)字,等價(jià)于[A-Za-z0-9] |
[[:alpha:]] |
匹配任意一個(gè)字母,等價(jià)于[A-Za-z] |
[[:digit:]] |
匹配任意一個(gè)數(shù)字,等價(jià)于0-9 |
[[:lower:]] |
匹配任意一個(gè)小寫字母,等價(jià)于a-z |
[[:upper:]] |
匹配任意一個(gè)大寫字母,等價(jià)于A-Z |
[[:space:]] |
匹配任意一個(gè)空白符,包括空格、制表符、換行符以及分頁符 |
[[:blank:]] |
匹配空格和制表符 |
[[:graph:]] |
匹配任意一個(gè)看得見的可打印字符,不包括空白字符 |
[[:print:]] |
匹配任何一個(gè)可以打印的字符,包括空白字符,但是不包括控制字符、字符串結(jié)束符‘\0’、EOF文件結(jié)束符(-1) |
?[[:cntrl:]] |
匹配任何一個(gè)控制字符,即ASCII字符集中的前32個(gè)字符。例如換行符、 制表符等 |
[[:punct:]] |
匹配任何一個(gè)標(biāo)點(diǎn)符號(hào),例如“[]”、“{}”或者“,”等 |
[[:xdigit:]] |
匹配十六進(jìn)制數(shù)字,即0-9、a-f以及A-F |
幾個(gè)簡(jiǎn)單的使用例
^word 表示搜索以word開頭的內(nèi)容
?word$ 表示搜索以word結(jié)尾的內(nèi)容
?. 代表且只能代表一個(gè)任意字符
?* 重復(fù)0個(gè)或多個(gè)前面的字符
?
[] 匹配字符集合內(nèi)任意一個(gè)字符,如[a-z]
?
[^abc]在中括號(hào)里表示非,不包含a或b或c
?
找出"fdisk -l“命令的結(jié)果中,取出硬盤路徑
fdisk -l | grep Disk | grep /dev/nv | cut -d: -f 1 | cut -d " " -f2
?
?
找出ifconfig命令輸出中的所有IP地址
ifconfig | egrep -o "[0-9]{1,3}\.[0-9]{1,3}\.[0-9] {1,3}\.[0-9]{1,3}"文章來源:http://www.zghlxwxcb.cn/news/detail-578977.html
文章來源地址http://www.zghlxwxcb.cn/news/detail-578977.html
到了這里,關(guān)于Shell通配符和正則表達(dá)式的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!