詳解Linux命令中的正則表達(dá)式
命令中的正則表達(dá)式
如果要在命令輸出或文本中篩選內(nèi)容時(shí)使用模糊查找,就需要使用正則表達(dá)式。正則表達(dá)式是一套由多個(gè)元字符組成的模糊查找模式,使用正則表達(dá)式可以快速查找和定位文本中指定的內(nèi)容。
1、單字符匹配符.
正則表達(dá)式主要由一些元字符和匹配模式組成
單字符匹配符可以匹配任意單個(gè)字符,這個(gè)字符的功能和文件名匹配符中的?功能相同
使用正則表達(dá)式查找文本,首先需要使用元字符組成一個(gè)查找模式
(1)使用查找模式時(shí),通常將其放入兩個(gè)斜杠//中,然后再放入命令,例如要在一個(gè)文本中查找匹配模式/.i...../,可能選項(xiàng)就有:只要小寫(xiě)字母沒(méi)有出現(xiàn)在行首,或行尾的最后有5個(gè)字符都能匹配
2、單字符或字符串重復(fù)匹配符*
用來(lái)匹配單個(gè)字符或者一個(gè)字符串序列的一次或者多次重復(fù)出現(xiàn)
3、行首匹配符^
用于在匹配中指示行首位置字符串或者模式,使用時(shí)需要將行首匹配符放在要匹配的字符串或模式的前面
例如對(duì)命令ls -1 使用行首匹配/^1/,結(jié)果都是以1開(kāi)頭的
4、行尾匹配符$
用于在文本的每一行的行尾匹配字符串或模式,使用時(shí)將行尾匹配符放在字符串或模式后面
例如在文本中匹配所有行尾是love的行
/love$/
5、反斜杠屏蔽符\
該符用來(lái)屏蔽一些特殊字符的特殊含義,常見(jiàn)的特殊字符可能是引用符號(hào),注釋符號(hào),通配符和邏輯運(yùn)算符等,下面列舉一些特殊的符號(hào)
注釋、分隔符號(hào):#、;等
引用符號(hào):$、``、""等
元字符:.、*、^、$、?、[]、\等
邏輯運(yùn)算符或操作符:||、&&等
在命令中使用這些字符時(shí),都要使用反斜杠將其特殊含義屏蔽
例如使用乘法符號(hào)*做乘法運(yùn)算,就要用反斜杠將其特殊含義屏蔽在做使用
# expr 256 \* 256
6、范圍匹配符[]和排除范圍匹配符[^]
與文件名通配符中的范圍匹配符用法基本相同
(1)匹配單詞love和Love:
/[L]ove/
(2)不匹配所有的字母:
[^a-z]
7、詞首、詞尾匹配符 \< 和 \>
用于在單詞開(kāi)頭和單詞結(jié)尾匹配特定的字符或模式
(1)例如要匹配以disc 為詞首的文本,可以使用
/\<disc/
(2)要匹配以ment為詞尾的文本,可以使用:
/ment\>/
8、重復(fù)次數(shù)匹配符"x\{\}"
可以全精確匹配字符或字符串連續(xù)出現(xiàn)的次數(shù)或次數(shù)范圍
(1)要匹配字母m出現(xiàn)次數(shù)為5次的文本,可以使用:
/m\{5\}/
(2)要匹配字母m出現(xiàn)次數(shù)至少5次的文本,可以使用:
/m\{5,\}/
(3)匹配字母m出現(xiàn)次數(shù)在5至10次的文本,可以使用:
/m\{5,10\}/
9、組合并使用正則表達(dá)式
(1)在查找和篩選信息時(shí),有時(shí)需要去除文本中的空行,由于空行沒(méi)有任 何字符,可以使用行首,行尾匹配符匹配空行
/^$/
(2)有時(shí)一些文本為了看上去更加美觀(guān),會(huì)使用一種字符填充整行,可以使 用以下模式匹配這些行:
/^.*$/
(3)匹配以the或The開(kāi)頭的所有行
/^[tT]he/
(4)排除以the和The開(kāi)頭的所有行
/^[^Tt]he/
(5)匹配一個(gè)IP地址:
/[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}/
(6)匹配一個(gè)6個(gè)字母組成的字符串,前兩個(gè)字符是字母,中間兩個(gè)字符是22 且最后兩個(gè)字符是小寫(xiě)字母:
[a-z]\{2\}22[a-z]\{2\}
(7)要精確匹配單詞love:
/\<love\>/
以上所述是小編給大家介紹的詳解Linux命令中的正則表達(dá)式,希望對(duì)大家有所幫助,如果大家有任何疑問(wèn)請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持
相關(guān)文章
linux 環(huán)境 mysql寫(xiě)入中文報(bào)錯(cuò)
本篇文章主要介紹了linux 環(huán)境 mysql寫(xiě)入中文報(bào)錯(cuò)的相關(guān)知識(shí)。具有很好的參考價(jià)值。下面跟著小編一起來(lái)看下吧2017-04-04
shell?數(shù)組?${array[@]}?${array[*]}的使用及區(qū)別解析
shell中用括號(hào)來(lái)表示數(shù)組,數(shù)組元素間使用空格隔開(kāi),這篇文章主要介紹了shell?數(shù)組?${array[@]}?${array[*]}的使用及區(qū)別,需要的朋友可以參考下2023-06-06
在 Shell 提示符中顯示 Git 分支名稱(chēng)的方法
這篇文章主要介紹了在 Shell 提示符中顯示 Git 分支名稱(chēng)的方法,本文詳細(xì)的講解了解決這個(gè)需求的過(guò)程,需要的朋友可以參考下2015-04-04
一天一個(gè)shell命令 linux文本操作系列-diff命令詳解
這篇文章主要介紹了一天一個(gè)shell命令 linux文本操作系列-diff命令詳解,需要的朋友可以參考下2016-06-06
開(kāi)發(fā)必備Linux常用的幾個(gè)命令分享
Linux作為一個(gè)高度成熟和強(qiáng)大的操作系統(tǒng),擁有非常豐富的命令行工具,對(duì)于Java開(kāi)發(fā)者來(lái)說(shuō),掌握一些常用的Linux命令可以大大提高工作效率,尤其是在服務(wù)器端開(kāi)發(fā)時(shí),本文小編給大家分享了一些常用命令,需要的朋友可以參考下2023-10-10
定時(shí)導(dǎo)出mysql本地?cái)?shù)據(jù)替換遠(yuǎn)程數(shù)據(jù)庫(kù)數(shù)據(jù)腳本分享
這篇文章主要介紹了mysql每天定時(shí)倒出本地?cái)?shù)據(jù),替換遠(yuǎn)程數(shù)據(jù)庫(kù)數(shù)據(jù)的腳本,需要的朋友可以參考下2014-03-03

