linux中正則表達(dá)式的示例分析-創(chuàng)新互聯(lián)

這篇文章將為大家詳細(xì)講解有關(guān)linux中正則表達(dá)式的示例分析,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。

創(chuàng)新互聯(lián)服務(wù)項目包括雙清網(wǎng)站建設(shè)、雙清網(wǎng)站制作、雙清網(wǎng)頁制作以及雙清網(wǎng)絡(luò)營銷策劃等。多年來,我們專注于互聯(lián)網(wǎng)行業(yè),利用自身積累的技術(shù)優(yōu)勢、行業(yè)經(jīng)驗、深度合作伙伴關(guān)系等,向廣大中小型企業(yè)、政府機構(gòu)等提供互聯(lián)網(wǎng)行業(yè)的解決方案,雙清網(wǎng)站推廣取得了明顯的社會效益與經(jīng)濟(jì)效益。目前,我們服務(wù)的客戶以成都為中心已經(jīng)輻射到雙清省份的部分城市,未來相信會繼續(xù)擴(kuò)大服務(wù)區(qū)域并繼續(xù)獲得客戶的支持與信任!

正則表達(dá)式應(yīng)用非常廣泛,例如:php,Python,java等,但在linux中最常用的正則表達(dá)式的命令就是grep(egrep),sed,awk等,換句話 說linux三劍客要想能工作的更高效,就一定離不開正則表達(dá)式的配合。

1、什么是正則表達(dá)式?

簡單的說,正則表達(dá)式就是為處理大量的字符串而定義的一套規(guī)則和方法。通過定義的這些特殊符號的輔助,系統(tǒng)管理員就可以快速過濾、替換或者輸出需要的字符串。linux正則表達(dá)式一般以行為單位處理的。

2、為什么要學(xué)正則表達(dá)式

在企業(yè)工作中,我們每天做的linux運維工作中,時刻都會面對大量帶有字符串的文本配置、程序、命令輸出及日志文件等,而我們經(jīng)常會有迫切的需要從大量的字符串內(nèi)容中查找符合工作需要的特定字符串,這就要靠正則表達(dá)式,因此,可以說正則表達(dá)式就是為過濾這樣字符串的需求而生的!

3、容易混淆的兩個注意事項:

1)linux正則表達(dá)式一般是以行為單位處理的。

2)正則表達(dá)式和我們常用的通配符特殊字符是有本質(zhì)區(qū)別的,例如:ls *.txt 這里的*就是通配符(表示所有),不是正則表達(dá)式。

注意字符集問題:

確保字符集:export LC_ALL=C

---------------------------------------------

基礎(chǔ)正則表達(dá)式+擴(kuò)展正則表達(dá)式含義解釋:

---------------------------------------------

.   代表且只能代表任意一個字符(不包括空行)
*   重復(fù)前面任意0個或多個字符
.*   匹配所有字符。(包括空行)
sed -ri 's#(.*)#\1#g' bqh.txt
把前面正則匹配的括號內(nèi)的結(jié)果,在后面用\1取出來操作。
^   表示以什么開頭,^bqh 以bqh開頭
$   是以什么結(jié)尾
^$   表示空行。
\ 例\.   就只代表點本身,轉(zhuǎn)義符號,讓有著特殊身份移動的字符,脫掉馬甲,還原原型\$
^.*   以任意多個字符開頭。
.*$   以任意多個字符結(jié)尾。
(.*)   從第一字符匹配,到空格停止,
[abc]   匹配字符集合內(nèi)的任意一個字符【a-zA-Z】
[^abc]   匹配不包括^后的任意字符的內(nèi)容;中括號里的^為取反,注意和以...開頭區(qū)別。
a\{n,m\}   重復(fù)n到m次,前一個重復(fù)的字符。如果有用egrep/sed -r 可以去掉斜線。
\{n,\}   重復(fù)至少n次,前一個重復(fù)的字符。如果有用egrep/sed -r 可以去掉斜線。
\{n\}   重復(fù)n次,前一個重復(fù)的字符。如果有用egrep/sed -r 可以去掉斜線。
①^word   搜索以word開頭的;vi ^ 一行的開夠
②word$   搜索以word結(jié)尾的;vi $ 一行的開頭
③^$   表示空行。
擴(kuò)展的正則表達(dá)式:ERP(egrep或grep -E)

+   重復(fù)一個或一個以上前面的字符
? 復(fù)0個或一個0前面的字符
|   用或的方式查找多個符合的字符串
()  找出“用戶組”字符串

實戰(zhàn)舉例:

linux中正則表達(dá)式的示例分析

^m 搜索以m開頭的

linux中正則表達(dá)式的示例分析

p$搜索以p結(jié)尾的

 linux中正則表達(dá)式的示例分析

^$表示空號

 linux中正則表達(dá)式的示例分析

去掉空行:grep –v “^$” bqh.log

查看去掉的后的空行內(nèi)容:grep -vn “^$” bqh.log 

 linux中正則表達(dá)式的示例分析

.   代表且只能代表任意一個字符(不包括空行)

linux中正則表達(dá)式的示例分析


查找?guī)?的字符:

linux中正則表達(dá)式的示例分析


.*   匹配所有字符。(包括空行)

linux中正則表達(dá)式的示例分析


查找以.結(jié)尾的字符:

錯誤方法:grep ".$" bqh.log

linux中正則表達(dá)式的示例分析

正確方法:

grep “\.$” bqh.log

linux中正則表達(dá)式的示例分析


注意:\. 就只代表點本身,轉(zhuǎn)義符號,讓有著特殊身份移動的字符,脫掉馬甲,還原原型\$

*   例1*重復(fù)1個或多個前面的一個字符。

grep –o “1*” bqh.log  //-o精確匹配

linux中正則表達(dá)式的示例分析

^.*      以任意多個字符開頭。

linux中正則表達(dá)式的示例分析

.*$      以任意多個字符結(jié)尾。

linux中正則表達(dá)式的示例分析


[abc]    匹配字符集合內(nèi)的任意一個字符【a-zA-Z】

linux中正則表達(dá)式的示例分析

匹配字符集合內(nèi)的a-z任意一個小寫字符:

linux中正則表達(dá)式的示例分析

[^abc] 匹配不包括^后的任意字符的內(nèi)容;中括號里的^為取反,注意和以...開頭區(qū)別

linux中正則表達(dá)式的示例分析


匹配非數(shù)字的任意字符:

linux中正則表達(dá)式的示例分析

a\{n,m\}  重復(fù)n到m次,前一個重復(fù)的字符。如果有用egrep/sed -r /grep -E可以去掉斜線。

linux中正則表達(dá)式的示例分析


\{n,\}    重復(fù)至少n次,前一個重復(fù)的字符。如果有用egrep/sed -r 可以去掉斜線。

linux中正則表達(dá)式的示例分析


\{n\}    重復(fù)n次,前一個重復(fù)的字符。如果有用egrep/sed -r 可以去掉斜線。


linux中正則表達(dá)式的示例分析

linux中正則表達(dá)式的示例分析

注意:egrep,grep -E或sed -r過濾一般特殊字符可以不轉(zhuǎn)義。多使用參數(shù)。

 ---------------------------------------------------------------------------------

擴(kuò)展的正則表達(dá)式:ERP(egrep或grep -E)

+   重復(fù)一個或一個以上前面的字符

linux中正則表達(dá)式的示例分析

?  復(fù)0個或一個0前面的字符

linux中正則表達(dá)式的示例分析

|   用或的方式查找多個符合的字符串

linux中正則表達(dá)式的示例分析

()  找出“用戶組”字符串


linux中正則表達(dá)式的示例分析

關(guān)于“l(fā)inux中正則表達(dá)式的示例分析”這篇文章就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,使各位可以學(xué)到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。

文章題目:linux中正則表達(dá)式的示例分析-創(chuàng)新互聯(lián)
URL分享:http://www.muchs.cn/article46/ceeohg.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站營銷、網(wǎng)站制作、網(wǎng)站設(shè)計公司、建站公司、品牌網(wǎng)站設(shè)計、全網(wǎng)營銷推廣

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

微信小程序開發(fā)