? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?day14?
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?作者:黃勝
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 日期:2019/3/19
正則表達(dá)式:為處理大量字符串和文本而創(chuàng)建的一套規(guī)則和方法.
一、特點(diǎn)及使用場景
1.提高效率,快速獲取想要內(nèi)容;
2.應(yīng)用在三劍客和通配符;
3.以行為單位,一次操作一行;
二、正則表達(dá)式的分類
1.基本正則表達(dá)式
(1) ^以..開頭,例:grep '^|' oldboy.txt? ? ?? ?I am oldboy teacher!
(2) $ 空行 -n顯示行號(hào)
(3).?任意一個(gè)字符,不會(huì)匹配空行
(4) \轉(zhuǎn)義字符,還原命令本身含義
(5)*?前一個(gè)字符連續(xù)出現(xiàn)了0次或是0次以上(逐行匹配)
(6).*所有內(nèi)容,任何符號(hào)包含空行。
(7). [abc]相當(dāng)于一個(gè)符號(hào)(每次匹配1個(gè)字符)找出包含a或b或c所在的行
(8).[^abc]相當(dāng)于一個(gè)字符,每次匹配一個(gè)字符,過濾所有不包含a或b或c的行。
2.擴(kuò)展正則
?(1)+ 前一個(gè)字符連續(xù)出現(xiàn)1次或一次以上
? ?(2) | 管道符號(hào)在正則表達(dá)式中意思是或者
? ?(3)()表示一個(gè)整體,反向引用/后向引用
? ?(4)? {n,m} 匹配其前面的字符至少n次,至多m次
? (5) 匹配前一個(gè)字符重復(fù)0次或1次
?\b 只顯示過濾單詞,類似grep -w;劃分單詞邊界。
三劍客:grep ;sed; awk
1.sed (stream editor ),實(shí)現(xiàn)對文件內(nèi)容的增刪改查,用法:
sed? 選項(xiàng)? [sed內(nèi)置命令字符]? 文件
參數(shù):
(1)-n 取消默認(rèn)命令輸出;
(2)-i 修改文件,不輸出到終端;
(3) -r? 用于擴(kuò)展正則;
注:如果不適用-i,sed至修改內(nèi)存里面的文件內(nèi)容,不影響磁盤里面的內(nèi)容。
內(nèi)置命令字符:
s 替換;g全局;p打印;d刪除。