欧美一级特黄大片做受成人-亚洲成人一区二区电影-激情熟女一区二区三区-日韩专区欧美专区国产专区

shell實現模糊匹配與正則-創(chuàng)新互聯

shell實現模糊匹配與正則?相信很多沒有經驗的人對此束手無策,為此本文總結了問題出現的原因和解決方法,通過這篇文章希望你能解決這個問題。

濰城ssl適用于網站、小程序/APP、API接口等需要進行數據傳輸應用場景,ssl證書未來市場廣闊!成為創(chuàng)新互聯公司的ssl證書銷售渠道,可以享受市場價格4-6折優(yōu)惠!如果有意向歡迎電話聯系或者加微信:13518219792(備注:SSL證書合作)期待與您的合作!

正則表達式

正則表達式主要是用來描述一個句法規(guī)則的模式。其實說的通俗一點,就是利用字符和元字符的組合,對一些符合既定句法的模式進行模糊匹配。它的主要功能是文本查詢和字符串操作。

正則表達式的基本元素包括普通字符和元字符,在Linux shell里面,常用的正則表達式元字符集為:S={*  .  ^  $  []  \  \<\>  \{\}  \{n,\}  \{n,m\} },每一個元字符都有自己在正則表達式中的含義,下面來介紹一下:

“ * ”符號:表示匹配前面一個普通字符0次或多次。注意這里是一個普通字符,即如果是JO*B的話,那么*就匹配字符“O”任意次,而不是匹配“JO”串。

“ . ”符號:表示匹配任意一個字符。字符“ . "就表示一個字符,這個字符可以是任意字符。例如字符串 ...73 就表示前面3個字符為任意字符(包括空格),第4個和第5個字符分別是7和3。

“ ^ ”符號:表示匹配行首。例如:^cloud就表示匹配以cloud字符串開頭的所有行。與上面匹配一個字符不一樣,這里匹配的是后面跟著的整個字符串。

” $ "符號:表示匹配行尾。例如:cloud$ 就表示匹配以cloud字符串結尾的所有行。結合上面的匹配行首,^$表示匹配空行。

“ [] "符號:表示匹配方括號里面的字符集中的一個。例如:數字0-9中的任意一個數字都滿足[0-9]這個表達式。值得注意的是,當^放在[]里面的時候,^就不再表示行首,而是表示取反。如:[^7-9]則表示非7-9中的任意一個數字才滿足這個表達式。

” \ “符號:是轉義字符。如果你寫的正則表達式里面包括元字符,而你又想將它當做普通字符用的話,就要在前面加上轉義符號" \ "了。例如:\$就表示一個普通字符”$"。

“\<\>"符號:表示精確匹配<>內的字符,” \ “是用來轉義<>這兩個字符的。例如:\<the\>表示匹配包含”the“的行,由于精確匹配,所以,”them“,”theory“這些單詞所在的行并不會被匹配到。

”\{\}"符號:與" * "類似,表示匹配前面的一個字符任意多次。但是“\{\}”可以指定重復的次數,如\{3\}則表示重復前面的字符3次;\{3,\}表示重復前面的字符至少3次;\{3,5\}表示重復3到5次。例如:JO\{3\}B則表示重復字符O三次,即JOOOB;JO\{3,\}B則表示至少重復O三次,即JOOOB,JOOOOB等都符合;\{3,5\}則匹配JOOOB,JOOOOB,JOOOOOB這幾個字符串。

通配符

初學的時候對于正則表達式和通配符的理解很模糊,兩個都是可以進行模糊匹配的,到底什么時候用才是正則表達式,什么時候用是通配符呢?其實,我們登錄系統之后,系統的bash shell并不支持正則表達式的,也就是說,我們如果使用bash shell的某些命令時使用正則表達式,shell可能會認不出來,只有當我們使用類似grep,sed,awk等工具的時候才有效。所以,我們在使用bash shell的時候也想達到模糊匹配的目的的話,就要使用通配符了。

通配符是使用正則表達式的一些元字符來的,常用的元字符集:E={&#63;  *  []  {}  ^ }。不過,這個通配符的元字符意義跟正則表達式里面的不太一樣。例如:

“ * "字符不再表示匹配前面一個字符任意多次,而是表示任意位置的任意字符。例如:phi*ip,則可以匹配philip,phillip,philsaip等開始三個是phi和結尾兩位是ip的任意字符。例如ls -l *.awk表示匹配以.awk結尾的所有文件,*表示任意長度任意字符組合。

" &#63; ”字符才表示任意一個字符。同正則表達式元字符的" . "

" {} “字符不需要轉義。在{}表示的是表達式集合。如:ls -l {[a-h]*.awk,0&#63;.pem}則表示列出所有以a-h字符開頭的.awk文件的和以0開頭,后面接一個任意字符的.pem文件

" ^ "字符也不是表示行首,而是代表取反。

正則表達式和通配的應用環(huán)境上有些不一樣,但是都能夠達到模糊匹配的效果。在后面介紹到的使用grep,sed和awk等工具對于文件的查找以及各種操作中,正則表達式的匹配作用更加明顯。

 范例:

檢測文件名是否符合規(guī)范:

#!/bin/bash

RED='\033[31m'
GREEN='\033[32m'

awk '{printf("%s",$0)}' $1 | egrep "^#[[:digit:]]*-(docs|unittest|pseudocode|msg-[^ ].*)$" > /dev/null 2>&1

if [ $&#63; -ne 0 ];then
 echo -e "message check ${RED}fail${NORMAL}"
 exit 1
fi
 echo -e "message check ${GREEN}success${NORMAL}"
exit 0

文章題目:shell實現模糊匹配與正則-創(chuàng)新互聯
文章網址:http://www.aaarwkj.com/article12/dohsdc.html

成都網站建設公司_創(chuàng)新互聯,為您提供ChatGPT、動態(tài)網站、虛擬主機、外貿建站外貿網站建設、微信小程序

廣告

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

微信小程序開發(fā)
精品国产91久久粉嫩懂色| 美女露脸口爆吞精视频| 国产一区二区三区本色| 未满18周岁禁止观看视频| 人妻av在线中文字幕| 欧美日韩国产精品一区二区三区 | 日韩成人手机视频在线观看| 最新国产av网址大全| 男女裸体做爰一进一出视频| 国内精品人妻中文字幕| 日韩中文字幕欧美国产| 日韩欧美国产一区二区精品| 婷婷av一区二区三区| 91精品欧美综合在线| 伊人性伊人情亚洲综合| 国产国产成年年人免费看片| 黄片欧美视频在线观看| 成人污视频网站在线观看| 日韩人妻中出中文字幕| 国产欧美日韩国产欧美日| 国产精品毛片视频一区二区| 成人福利网站午夜一区| 日韩专区亚洲专区欧美专区| 欧美日韩国产另类一区二区| 亚洲国产日韩伦中文字幕| 久久精品色一情一乱一伦| 日韩成年人高清精品不卡一区二区| 国产高清不卡一二三区| 91伊人久热精品午夜福利| 国产免费av剧情演绎| 91成人大片在线观看| 欧美成人免费做真爱高潮| 亚洲成人免费电影观看| 欧美日韩精品一区二区在线| 成人欧美黑人一区二区| 18禁在线免费观看网站| 欧美伊人色综合久久天天| 日韩国产欧美亚洲一区| 精品日韩欧美精品日韩| 亚洲欧美日韩不卡视频| 大香蕉一区二区亚洲欧美|