主頁 > 知識(shí)庫 > 詳解linux正則表達(dá)式(基礎(chǔ)正則表達(dá)式+擴(kuò)展正則表達(dá)式)

詳解linux正則表達(dá)式(基礎(chǔ)正則表達(dá)式+擴(kuò)展正則表達(dá)式)

熱門標(biāo)簽:ai電話機(jī)器人搭建 甘肅醫(yī)療外呼系統(tǒng)排名 貴港公司如何申請(qǐng)400電話 400電話辦理電話辦理 地圖標(biāo)注教學(xué)點(diǎn) 外呼系統(tǒng)無呼出路由是什么原因 梅縣地圖標(biāo)注 西藏智能外呼系統(tǒng)代理商 呼叫系統(tǒng)外呼只能兩次

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

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

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

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

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

3、容易混淆的兩個(gè)注意事項(xiàng):

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

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

注意字符集問題:

確保字符集:export LC_ALL=C

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

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

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

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

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

實(shí)戰(zhàn)舉例:

^m 搜索以m開頭的

 

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

 

^$表示空號(hào)

 

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

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

 

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


查找?guī)?的字符:


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


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

錯(cuò)誤方法:grep ".$" bqh.log

正確方法:

grep “\.$” bqh.log 


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

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

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

^.*      以任意多個(gè)字符開頭。

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


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

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

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


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

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


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


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


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

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

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

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

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

|   用或的方式查找多個(gè)符合的字符串

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

總結(jié)

以上所述是小編給大家介紹的詳解linux正則表達(dá)式(基礎(chǔ)正則表達(dá)式+擴(kuò)展正則表達(dá)式),希望對(duì)大家有所幫助,如果大家有任何疑問請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!

您可能感興趣的文章:
  • Linux中的特殊符號(hào)與正則表達(dá)式
  • 淺談Linux grep與正則表達(dá)式
  • linux下的通配符與正則表達(dá)式
  • 詳解Linux命令中的正則表達(dá)式
  • 詳解基于Linux下正則表達(dá)式(基本正則和擴(kuò)展正則命令使用實(shí)例)
  • linux shell 路徑截取正則表達(dá)式
  • 使用Linux正則表達(dá)式靈活搜索文件中的文本
  • linux正則表達(dá)式awk詳解

標(biāo)簽:泰安 常州 涼山 本溪 ???/a> 湖州 大興安嶺 哈密

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《詳解linux正則表達(dá)式(基礎(chǔ)正則表達(dá)式+擴(kuò)展正則表達(dá)式)》,本文關(guān)鍵詞  詳解,linux,正則,表達(dá)式,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《詳解linux正則表達(dá)式(基礎(chǔ)正則表達(dá)式+擴(kuò)展正則表達(dá)式)》相關(guān)的同類信息!
  • 本頁收集關(guān)于詳解linux正則表達(dá)式(基礎(chǔ)正則表達(dá)式+擴(kuò)展正則表達(dá)式)的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章