Day14-課堂筆記-Linux正則表達(dá)式及三劍客知識(shí)應(yīng)用實(shí)踐

Linux正則表達(dá)式及三劍客知識(shí)應(yīng)用實(shí)踐

一、正則表達(dá)式

正則表達(dá)式是為了處理大量的字符串及文本而定義的一套規(guī)則和方法。

可以提高效率,快速獲得想要的到的內(nèi)容;

適用于三劍客命令:grep(egrep),sed,awk,工作時(shí)以行為單位進(jìn)行處理。

二、易混淆事項(xiàng)

1、和通配符區(qū)別

2、開發(fā)正則,一般是Prel兼容正則表達(dá)式

3、linux系統(tǒng)三劍客正則表達(dá)式。

三、正則表達(dá)式分類:

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

^? 匹配以。。。開頭的行

$ 匹配以。。。結(jié)尾的行

^$ 空行

. 匹配任意一個(gè)且只有一個(gè)字符

\ 轉(zhuǎn)義字符,讓原本有意義的字符脫掉馬甲,還原本意

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

.* 匹配所有內(nèi)容

^.* 匹配任意一個(gè)或多個(gè)字符開頭的內(nèi)容

.*$ 匹配任意一個(gè)或多個(gè)字符結(jié)尾的內(nèi)容

[abc] 匹配[ ]內(nèi)任意一個(gè)字符a或b或c

[^abc] 匹配不包含^后任意字符a或b或c

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

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

[]+ 匹配[]內(nèi)任意一個(gè)字符1次或多次

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

| 或者 同時(shí)過濾多個(gè)字符串

() 分組過濾括號(hào)括起來的內(nèi)容,表示一個(gè)整體

\n 引用前面()里的內(nèi)容

a{n,m} 表示匹配一個(gè)字符最少n次最多m次

a{n,}表示匹配一個(gè)字符最少n次

a{n}表示匹配一個(gè)字符n次

a{,m}表示匹配一個(gè)字符最多m次

四、Linux三劍客

awk、sed、grep

1、sed

sed是操作、過濾和轉(zhuǎn)換文本內(nèi)容的強(qiáng)大工具。

常用功能有與文件實(shí)現(xiàn)快速增刪改查。

其中查詢的功能中最常用的兩大功能是過濾(過濾指定位字符串)和取行(取出指定行)。

語法格式:sed? [選項(xiàng)] [sed內(nèi)置命令字符] [輸入文件]

選項(xiàng):

-n 取消默認(rèn)sed的輸出(只顯示過濾內(nèi)容),常于sed內(nèi)置命令的p連用*****

-i 直接修改文件內(nèi)容,而不是輸出到終端。

如果不使用-i選項(xiàng)sed只是修改在內(nèi)存中的數(shù)據(jù),并不會(huì)影響磁盤上的文件*****

sed的內(nèi)置命令字符功能說明

s 替換

g 全局

p 打印

d 刪除

實(shí)踐練習(xí):

1、輸出oldboy.txt的第2-3行內(nèi)容。*****

sed -n '2,3p' oldboy.txt

2、過濾出含有oldboy字符串的行*****

sed -n? '/oldboy/p' test.txt?

3、刪除含有oldboy字符串的行。*****

sed? '/oldboy/d' test.txt

4、將文件中的oldboy字符串全部替換為oldgirl。*****

sed? 's#oldboy#oldgirl#g' test.txt

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

推薦閱讀更多精彩內(nèi)容