中文字幕日韩精品一区二区免费_精品一区二区三区国产精品无卡在_国精品无码专区一区二区三区_国产αv三级中文在线

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

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

創(chuàng)新互聯(lián)建站是一家專(zhuān)業(yè)提供博羅企業(yè)網(wǎng)站建設(shè),專(zhuān)注與做網(wǎng)站、成都網(wǎng)站設(shè)計(jì)、H5場(chǎng)景定制、小程序制作等業(yè)務(wù)。10年已為博羅眾多企業(yè)、政府機(jī)構(gòu)等服務(wù)。創(chuàng)新互聯(lián)專(zhuā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工具舉例說(shuō)明。

符號(hào)

描述

示例

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

匹配123:

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

^匹配前面字符串開(kāi)頭

匹配以abc開(kāi)頭的行:

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}'

\<邊界符,匹配字符串開(kāi)始

匹配開(kāi)始是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開(kāi)始編號(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)維開(kāi)發(fā)群 323779636

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

命令

描述

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

支持的特殊字符

描述

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

空白符

描述

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

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

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

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

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

廣告

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

h5響應(yīng)式網(wǎng)站建設(shè)
塘沽区| 平果县| 富阳市| 湘阴县| 鲁甸县| 新龙县| 尉氏县| 临颍县| 合作市| 平南县| 雷波县| 双流县| 凤城市| 中山市| 五寨县| 安远县| 深泽县| 青浦区| 株洲市| 西吉县| 武鸣县| 嫩江县| 申扎县| 双辽市| 桐柏县| 定兴县| 周宁县| 光泽县| 乐安县| 扬州市| 韶山市| 兴城市| 彭水| 获嘉县| 锦州市| 赣州市| 神木县| 昭平县| 肃宁县| 杨浦区| 淮安市|