溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

3分鐘搞定Linux系統(tǒng)正則表達(dá)式

發(fā)布時(shí)間:2020-08-09 18:55:22 來源:ITPUB博客 閱讀:148 作者:劉遄 欄目:建站服務(wù)器
正則表達(dá)式是一種字符模式,用于在查找過程中匹配制定的字符。

元字符通常在 Linux 中分為兩類:Shell元字符,由Linux Shell進(jìn)行解析;
正則表達(dá)式元字符,由vi/grep/sed/awk等文本處理工具進(jìn)行解析;
正則表達(dá)式一般以文本行進(jìn)行處理,在進(jìn)行下面實(shí)例之前,先為grep命令設(shè)置--color參數(shù):


 class="">$ alias grep='grep --color=auto'

這樣每次過濾出來的字符串都會(huì)帶色彩了。

在開始之前還需要做一件事情,就是創(chuàng)建一個(gè)測試用的re-file文件,內(nèi)容如下:

 class="">$ cat re-fileI had a lovely time on our little picnic.
Lovers were all around us. It is springtime. Oh
love, how much I adore you. Do you know
the extent of my love? Oh, by the way, I think
I lost my gloves somewhere out in that field of
clover. Did you see them?  I can only hope love.
is forever. I live for you. It's hard to get back in the
groove.
 class="">$ cat linux.txtLinux is a good 
god assdxw bcvnbvbjk
greatttttt  wexcvxc
operaaaating  dhfghfvx
gooodfs awrerdxxhkl
gdsystem awxxxx
glad
good

正則表達(dá)式元字符

3分鐘搞定Linux系統(tǒng)正則表達(dá)式

特殊的元字符

3分鐘搞定Linux系統(tǒng)正則表達(dá)式

擴(kuò)展的正則表達(dá)式

3分鐘搞定Linux系統(tǒng)正則表達(dá)式

實(shí)操

匹配以love開頭的所有行

 class="">$ grep '^love' re-filelove, how much I adore you. Do you know

匹配love結(jié)尾的所有行

 class="">$ grep 'love$' re-fileclover. Did you see them?  I can only hope love.

匹配以l開頭,中間包含兩個(gè)字符,結(jié)尾是e的所有行

 class="">$ grep 'l..e' re-fileI had a lovely time on our little picnic.
love, how much I adore you. Do you know
the extent of my love? Oh, by the way, I think
I lost my gloves somewhere out in that field of
clover. Did you see them?  I can only hope love.
is forever. I live for you. It's hard to get back in the

匹配0個(gè)或多個(gè)空行,后面是love的字符

 class="">$ grep ' *love' re-fileI had a lovely time on our little picnic.
love, how much I adore you. Do you know
the extent of my love? Oh, by the way, I think
I lost my gloves somewhere out in that field of
clover. Did you see them?  I can only hope love.

匹配love或Love

 class="">$ grep '[Ll]ove' re-file  # 對l不區(qū)分大小寫I had a lovely time on our little picnic.
Lovers were all around us. It is springtime. Oh
love, how much I adore you. Do you know
the extent of my love? Oh, by the way, I think
I lost my gloves somewhere out in that field of
clover. Did you see them?  I can only hope love.

匹配A-Z的字母,其次是ove

 class="">$ grep '[A-Z]ove' re-fileLovers were all around us. It is springtime. Oh

匹配不在A-Z范圍內(nèi)的任何字符行,所有的小寫字符

 class="">$ grep '[^A-Z]' re-fileI had a lovely time on our little picnic.
Lovers were all around us. It is springtime. Oh
love, how much I adore you. Do you know
the extent of my love? Oh, by the way, I think
I lost my gloves somewhere out in that field of
clover. Did you see them?  I can only hope love.
is forever. I live for you. It's hard to get back in the
groove.

匹配love

 class="">$ grep 'love\.' re-fileclover. Did you see them?  I can only hope love.

匹配空格

 class="">$ grep '^$' re-file

匹配任意字符

class="">$ grep '.*' re-fileI had a lovely time on our little picnic.
Lovers were all around us. It is springtime. Oh
love, how much I adore you. Do you know
the extent of my love? Oh, by the way, I think
I lost my gloves somewhere out in that field of
clover. Did you see them?  I can only hope love.
is forever. I live for you. It's hard to get back in the
groove.

前面o字符重復(fù)2到4次

 class="">$ grep 'o\{2,4\}' re-filegroove.

重復(fù)o字符至少2次

 class="">$ grep 'o\{2,\}' re-filegroove.

重復(fù)0字符最多2次

 class="">$ grep 'o\{,2\}' re-fileI had a lovely time on our little picnic.
Lovers were all around us. It is springtime. Oh
love, how much I adore you. Do you know
the extent of my love? Oh, by the way, I think
I lost my gloves somewhere out in that field of
clover. Did you see them?  I can only hope love.
is forever. I live for you. It's hard to get back in the
groove.

重復(fù)前一個(gè)字符一個(gè)或一個(gè)以上

 class="">$ egrep "go+d" linux.txtLinux is a good
god assdxw bcvnbvbjk
gooodfs awrerdxxhkl
good#####0個(gè)或者一個(gè)字符ansheng@Ubuntu:/tmp$ egrep "go?d" linux.txt
god assdxw bcvnbvbjk
gdsystem awxxxx

或,查找多個(gè)字符串

 class="">$ egrep "gd|good" linux.txtLinux is a good
gdsystem awxxxx
good

分組過濾匹配

 class="">$ egrep "g(la|oo)d" linux.txtLinux is a good
glad
good

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI