真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

grep與正則達(dá)式-創(chuàng)新互聯(lián)

grep是一個(gè)行編輯器,它的默認(rèn)動(dòng)作是搜索與給定模式匹配的行顯示到屏幕上來(lái)。它的變種程序包括egrep和fgrep。

創(chuàng)新互聯(lián)公司長(zhǎng)期為上千客戶提供的網(wǎng)站建設(shè)服務(wù),團(tuán)隊(duì)從業(yè)經(jīng)驗(yàn)10年,關(guān)注不同地域、不同群體,并針對(duì)不同對(duì)象提供差異化的產(chǎn)品和服務(wù);打造開放共贏平臺(tái),與合作伙伴共同營(yíng)造健康的互聯(lián)網(wǎng)生態(tài)環(huán)境。為昭蘇企業(yè)提供專業(yè)的成都網(wǎng)站建設(shè)、網(wǎng)站建設(shè),昭蘇網(wǎng)站改版等技術(shù)服務(wù)。擁有10年豐富建站經(jīng)驗(yàn)和眾多成功案例,為您定制開發(fā)。

正則表達(dá)式是用戶定義的、Linux工具用來(lái)過(guò)濾文本的模式模板。正則表達(dá)式利用元字符來(lái)表示數(shù)據(jù)流中的一個(gè)或多個(gè)字符。

正則表達(dá)式(Regual Expression,REGEXP)包括BRE和ERE兩種,BRE就是基本正則表達(dá)式,而ERE是擴(kuò)展正則表達(dá)式。

grep使用的元字符是BRE,egrep使用的元字符是ERE,而fgrep不使用元字符。而這三個(gè)命令可以使用不同的選項(xiàng)進(jìn)行互通。接下來(lái),我們來(lái)看看grep的用法。

一、grep

1. 格式

grep [options] ? ? PATTERN ? ? ?[FILE...]

2. 選項(xiàng)

-o:只顯示匹配的行中與PATTERN相匹配的部分。

-i: 忽略PATTERN和輸入文件中大小寫的區(qū)別

-v:反選,只顯示沒有被PATTERN匹配到的行

-q:靜默模式,找到匹配的內(nèi)容,則命令的執(zhí)行狀態(tài)返回值為0,否則為非0。

-A NUM:打印緊隨匹配的行之后的下文NUM行。

-B NUM: 打印緊隨匹配的行之前的上文NUM行。

-C NUM: 打印匹配出來(lái)的行的上下文各NUM行。

二、基本正則表達(dá)式

類型

元字符

解釋

字符匹配

.

匹配任意單個(gè)字符


[]

匹配指定范圍內(nèi)的任意單個(gè)字符


[^]

匹配指定范圍外的單個(gè)字符




匹配次數(shù)

*

匹配其前的字符任意次,0次,1次或者多次


.*

匹配任意長(zhǎng)度的任意字符


\?

匹配其前的字符0次或者1次,即其前面的字符可有可元


\+

匹配其前的字符1次或者多次,即其前面的字符至少出現(xiàn)1次


\{m\}

匹配其前的字符m次,精確匹配


\{m,n\}

匹配其前的字符至少m次,至多n次


? ?\{0,n\}

匹配其前的字符最多n次


? ?\{m,\}

匹配其前的字符最少m次

位置錨定

^

錨定行首,寫在模式的最左側(cè),指定的字符串只能出現(xiàn)在行首


$

錨定行尾,寫在模式的最右側(cè)


^PATTERN$

用PATTERN來(lái)匹配整行


^$

表示空行,連空格都不能包含,不包括任意字符


^[[:spaces:]]*

表示空行或者包括空白字符的行


\

錨定詞首


\bPATTERN

錨定詞首


PATTERN\>

錨定詞尾


\\

精確錨定單詞




分組及引用

\(PATTERN\)

將一個(gè)或者多個(gè)字符捆綁在一起,當(dāng)作一個(gè)整體進(jìn)行處理;

分組括號(hào)中的模式匹配到的內(nèi)容會(huì)被正則表達(dá)式引擎自動(dòng)記錄于內(nèi)部的變量中,這些變量為:

\1: 模式從左側(cè)起,第一個(gè)左括號(hào)以及與之匹配到的右括號(hào)之間的字符

\2:模式從左側(cè)起,第二個(gè)左括號(hào)以及與之匹配到的右括號(hào)之間的字符

三、擴(kuò)展正則表達(dá)式

類型

元字符

解釋

字符匹配

.

匹配任意單個(gè)字符


[]

匹配指定范圍內(nèi)的任意單個(gè)字符


[^]

匹配指定范圍外的單個(gè)字符




匹配次數(shù)

*

匹配其前的字符任意次,0次,1次或者多次


.*

匹配任意長(zhǎng)度的任意字符


?

匹配其前的字符0次或者1次,即其前面的字符可有可元


+

匹配其前的字符1次或者多次,即其前面的字符至少出現(xiàn)1次


{m}

匹配其前的字符m次,精確匹配


{m,n}

匹配其前的字符至少m次,至多n次


? ?{0,n}

匹配其前的字符最多n次


? ?{m,}

匹配其前的字符最少m次

位置錨定

^

錨定行首,寫在模式的最左側(cè),指定的字符串只能出現(xiàn)在行首


$

錨定行尾,寫在模式的最右側(cè)


^PATTERN$

用PATTERN來(lái)匹配整行


^$

表示空行,連空格都不能包含,不包括任意字符


^[[:spaces:]]*

表示空行或者包括空白字符的行


\

錨定詞首


\bPATTERN

錨定詞首


PATTERN\>

錨定詞尾


\\

精確錨定單詞

? |

或,以|為分隔,表示或者為|左邊,或者為|右邊

C|cat表示C或者cat

分組及引用

(PATTERN)

將一個(gè)或者多個(gè)字符捆綁在一起,當(dāng)作一個(gè)整體進(jìn)行處理;

分組括號(hào)中的模式匹配到的內(nèi)容會(huì)被正則表達(dá)式引擎自動(dòng)記錄于內(nèi)部的變量中,這些變量為:

\1: 模式從左側(cè)起,第一個(gè)左括號(hào)以及與之匹配到的右括號(hào)之間的字符

\2:模式從左側(cè)起,第二個(gè)左括號(hào)以及與之匹配到的右括號(hào)之間的字符

四、 BRE和ERE的區(qū)別: 從上面的兩個(gè)表可以看出基本正則表達(dá)式和擴(kuò)展正則表達(dá)式的區(qū)別,那就是擴(kuò)展正則表達(dá)式在進(jìn)行次數(shù)匹配和分組時(shí)的元字符不再需要\進(jìn)行轉(zhuǎn)義;另外擴(kuò)展正則表達(dá)式多了一個(gè)或的元字符。

五、 練習(xí):前面提到了這么多,一起來(lái)練習(xí)下吧。

1、顯示/proc/meminfo文件中以大寫或小寫S開頭的行;

# grep -i '^s' /proc/meminfo

# grep '^[Ss]' /proc/meminfo

# grep -E '^(S|s)' /proc/meminfo

2、顯示/etc/passwd文件中其默認(rèn)shell為非/sbin/nologin的用戶;

# grep -v "/sbin/nologin$" /etc/passwd | cut -d: -f

3、顯示/etc/passwd文件中其默認(rèn)shell為/bin/bash的用戶; 進(jìn)一步:僅顯示上述結(jié)果中其ID號(hào)大的用戶;

# grep "/bin/bash$" /etc/passwd | sort -t: -k3 -n | tail -1 | cut -d: -f1,7

4、找出/etc/passwd文件中的一位數(shù)或兩位數(shù);

# grep "\<[0-9][0-9]\?\>" /etc/passwd

# grep "\<[0-9]\{1,2\}\>" /etc/passwd

5、顯示/boot/grub/grub.conf中以至少一個(gè)空白字符開頭的行;

# grep "^[[:space:]]\{1,\}" /boot/grub/grub.conf

6、顯示/etc/rc.d/rc.sysinit文件中,以#開頭,后面跟至少一個(gè)空白字符,而后又有至少一個(gè)非空白字符的行;

# grep "^#[[:space:]]\{1,\}[^[:space:]]\{1,\}" /etc/rc.d/rc.sysinit

7、找出netstat -tan命令執(zhí)行結(jié)果中以'LISTEN'結(jié)尾的行;

# netstat -tan | grep "LISTEN[[:space:]]*$"

8、添加用戶bash, testbash, basher, nologin(SHELL為/sbin/nologin),而找出當(dāng)前系統(tǒng)上其用戶名和默認(rèn)shell相同的用戶;

# grep "^\([[:alnum:]]\{1,\}\):.*\1$" /etc/passwd

9、擴(kuò)展題:新建一個(gè)文本文件,假設(shè)有如下內(nèi)容:

He like his lover.

He love his lover.

He like his liker.

He love his liker.

找出其中最后一個(gè)單詞是由此前某單詞加r構(gòu)成的行。

[root@liuqing tmp]# grep "\(l..e\).*\1" ?love.txt

10. 顯示ifconfig命令輸出結(jié)果中的IP地址。

~]# ifconfig | grep ?-E ?-o ?"\<([1-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\>(.\<([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\>){3}"

六、三個(gè)命令的互換

grep -E表示使用擴(kuò)展正則表達(dá)式(egrep),? -F表示將模式視為一個(gè)固定的字符串(fgrep)

egrep -G表示使用基本正則表達(dá)式(grep), -F表示將模式視為一個(gè)固定的字符串(fgrep)

fgrep -E表示使用擴(kuò)展正則表達(dá)式(egrep),? ? ? ?-G表示使用基本正則表達(dá)式(grep)

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


本文題目:grep與正則達(dá)式-創(chuàng)新互聯(lián)
本文地址:http://weahome.cn/article/dcoodd.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部