成人午夜视频全免费观看高清-秋霞福利视频一区二区三区-国产精品久久久久电影小说-亚洲不卡区三一区三区一区

第六章Shell正則表達(dá)式-創(chuàng)新互聯(lián)

正則表達(dá)式在每種語言中都會(huì)有,功能就是匹配符合你預(yù)期要求的字符串。

創(chuàng)新互聯(lián)建站是一家專業(yè)提供博羅企業(yè)網(wǎng)站建設(shè),專注與做網(wǎng)站、成都網(wǎng)站設(shè)計(jì)、H5場(chǎng)景定制、小程序制作等業(yè)務(wù)。10年已為博羅眾多企業(yè)、政府機(jī)構(gòu)等服務(wù)。創(chuàng)新互聯(lián)專業(yè)網(wǎng)絡(luò)公司優(yōu)惠進(jìn)行中。

Shell正則表達(dá)式有兩種:

基礎(chǔ)正則表達(dá)式:BRE(basic regular express)

擴(kuò)展正則表達(dá)式:ERE(extend regular express),擴(kuò)展的表達(dá)式有+、?、|和()

下面是一些常用的正則表達(dá)式符號(hào),我們先拿grep工具舉例說明。

符號(hào)

描述

示例

.匹配除換行符(\n)之外的任意單個(gè)字符

匹配123:

echo -e "123\n456" |grep -E '1.3'

^匹配前面字符串開頭

匹配以abc開頭的行:

echo -e "abc\nxyz" |grep -E ^abc

$匹配前面字符串結(jié)尾

匹配以xyz結(jié)尾的行:

echo -e "abc\nxyz" |grep -E xyz$

*匹配前一個(gè)字符零個(gè)或多個(gè)

匹配x、xo和xoo:

echo -e "x\nxo\nxoo\no\noo" |grep "xo*"

x是必須的,批量了0零個(gè)或多個(gè)

+匹配前面字符1個(gè)或多個(gè)

匹配abc和abcc:

echo -e "abc\nabcc\nadd" |grep -E 'ab+'

這樣是匹配單個(gè)數(shù)字:echo "113" |grep -E -o '[0-9]'

連續(xù)匹配多個(gè)數(shù)字:echo "113" |grep -E -o '[0-9]+'

?匹配前面字符0個(gè)或1個(gè)

匹配ac或abc:

echo -e "ac\nabc\nadd" |grep -E 'a?c'

[ ]匹配中括號(hào)之中的任意一個(gè)字符

匹配a或c:

echo -e "a\nb\nc" |grep -E '[ac]'

[ .-.]匹配中括號(hào)中范圍內(nèi)的任意一個(gè)字符

匹配所有字母:

echo -e "a\nb\nc" |grep -E '[a-z]'

[^]匹配[^字符]之外的任意一個(gè)字符

匹配a或b:

echo -e "a\nb\nc" |grep -E '[^c-z]'

匹配末尾數(shù)字:echo "abc:cde;123" |grep -E '[^;]+$'

{n}或{n,}匹配花括號(hào)前面字符至少n個(gè)字符

匹配abc字符串(至少三個(gè)字符以上字符串):

echo -e "a\nabc\nc" |grep -E '[a-z]{3}'

{n,m}匹配花括號(hào)前面字符至少n個(gè)字符,最多m個(gè)字符

匹配12和123(不加邊界符會(huì)匹配單個(gè)字符):

echo -e "1\n12\n123\n1234" |grep -E -w -o '[0-9]{2,3}'

\<邊界符,匹配字符串開始

匹配開始是123和1234:

echo -e "1\n12\n123\n1234" |grep -E -w '\<123'

\>邊界符,匹配字符串結(jié)束

匹配結(jié)束是1234:

echo -e "1\n12\n123\n1234" |grep -E '4\>'

( )

單元或組合:將小括號(hào)里面作為一個(gè)組合

分組:匹配小括號(hào)中正則表達(dá)式或字符。\n反向引用,n是數(shù)字,從1開始編號(hào),表示引用第n個(gè)分組匹配的內(nèi)容

單元:匹配123a字符串

echo "123abc" |grep -E -o '([0-9a-z]){4}'

分組:匹配11

echo "113abc" |grep -E -o '(1)\1'

匹配出現(xiàn)xo出現(xiàn)零次或多次:

echo -e "x\nxo\nxoo\no\noo" |egrep "(xo)*"

|匹配豎杠兩邊的任意一個(gè)

匹配12和123:

echo -e "1\n12\n123\n1234" |grep -E '12\>|123\>'

\轉(zhuǎn)義符,將特殊符號(hào)轉(zhuǎn)成原有意義1.2,匹配1.2:1\.2,否則112也會(huì)匹配到

Posix字符

描述

[:alnum:]等效[a-zA-Z0-9]
[:alpha:]等效[a-zA-Z]
[:lower:]等效[a-z]
[:upper:]等效[A-Z]
[:digit:]等效[0-9]
[:space:]匹配任意空白字符,等效[\t\n\r\f\v]
[:graph:]非空白字符
[:blank:]空格與定位字符
[:cntrl:]控制字符
[:print:]可顯示的字符
[:punct:]標(biāo)點(diǎn)符號(hào)字符
[:xdigit:]十六進(jìn)制

示例:

echo -e "1\n12\n123\n1234a" |grep '[[:digit:]]'

博客地址:http://lizhenliang.blog.51cto.com

QQ群:Shell/Python運(yùn)維開發(fā)群 323779636

在Shell下使用這些正則表達(dá)式處理文本最多的命令有下面幾個(gè)工具:

命令

描述

grep默認(rèn)不支持?jǐn)U展表達(dá)式,加-E選項(xiàng)開啟ERE。如果不加-E使用花括號(hào)要加轉(zhuǎn)義符\{\}
egrep支持基礎(chǔ)和擴(kuò)展表達(dá)式
awk支持egrep所有的正則表達(dá)式
sed默認(rèn)不支持?jǐn)U展表達(dá)式,加-r選項(xiàng)開啟ERE。如果不加-r使用花括號(hào)要加轉(zhuǎn)義符\{\}

支持的特殊字符

描述

\w匹配任意數(shù)字和字母,等效[a-zA-Z0-9_]
\W與\w相反,等效[^a-zA-Z0-9_]
\b匹配字符串開始或結(jié)束,等效\<和\>
\s匹配任意的空白字符
\S匹配非空白字符

空白符

描述

\n換行符
\r回車符
\t水平制表符
\v垂直制表符
\0空值符
\b退后一格

下一章節(jié)具體講解grep、sed和awk用法,想要提升三劍客功底的可以看看!

另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場(chǎng)景需求。

分享名稱:第六章Shell正則表達(dá)式-創(chuàng)新互聯(lián)
鏈接地址:http://jinyejixie.com/article38/ccidsp.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供定制網(wǎng)站、企業(yè)網(wǎng)站制作、軟件開發(fā)小程序開發(fā)、網(wǎng)站營銷、網(wǎng)站設(shè)計(jì)

廣告

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

h5響應(yīng)式網(wǎng)站建設(shè)
武强县| 冷水江市| 临高县| 台中县| 新营市| 宁化县| 策勒县| 安新县| 静乐县| 陆丰市| 祁东县| 富宁县| 江津市| 仁化县| 德安县| 普兰店市| 唐河县| 东丰县| 丰台区| 策勒县| 旺苍县| 济宁市| 靖宇县| 美姑县| 娱乐| 麻城市| 彭阳县| 神池县| 辉县市| 汶川县| 渭南市| 耿马| 芮城县| 衢州市| 襄樊市| 汕头市| 远安县| 嵩明县| 大关县| 资源县| 镇平县|