承接上一節管道命令grep、sed與正則表達式結合在一起讓你玩轉Linux?
本節主要介紹grep下延伸正則表達式
延伸正則表達式一般使用者隻需要了解基礎的正則表達式就夠用了,但是呢,某些時候想要簡化指令或者那啥(zhuang bi)的話了解延伸正則表達式也是挺好的,延伸表達式适用範圍更加廣泛.廢話少說,舉例子才是王道.
模闆練習文件還是上一節的express.txt
express.txt模闆練習文件
示例一:如果我們要去除空白行和行首是#的行列,按照上一節的做法是:
grep -v '^$' express.txt | grep -v '^#'
其實使用延伸表達式可以更簡介
egrep -v '^$|^#' express.txt
grep -v '^$' express.txt | grep -v '^#'
延伸表達式可以通過群組功能"|"來進行一次查詢,"|"就是or的意思,這樣看來是不是延伸表達式簡潔性更強呢,需要注意的是,grep默認僅支持基礎正則表達式,egrep支持延伸正則表達式,這一點很多人容易混淆,其實egrep就是grep -E,因為直接去分指令比較好記憶,所以才區分grep,egrep.
通過上聯的例子我們可以看到,所謂延伸正則表達式就是多了幾個特殊符号而已.
意義:重複“一個或一個以上”的前一個 RE 字符 範例:搜尋 (god) (good) (goood)... 等等的字串。 那個 o 代表“一個以上的 o ”
? 意義:“零個或一個”的前一個 RE 字符 範例:搜尋 (gd) (god) 這兩個字串。 那個 o? 代表“空的或 1 個 o ”
| 意義:用或( or )的方式找出數個字串 範例:搜尋 gd 或 good 這兩個字串,注意,是“或”!
() 意義:找出“群組”字串 範例:搜尋 (glad) 或 (good) 這兩個字串,因為 g 與 d 是重複的,所以, 我就可以将 la 與 oo 列于 ( ) 當中,并以 | 來分隔開來,就可以啦! > egrep -n 'g(la|oo)d' express.txt
() 意義:多個重複群組的判别 範例:将“AqwerqwerqwerC”用 echo 叫出,然後再使用如下的方法搜尋一下! > echo 'AqwerqwerqwerC' | egrep 'A(qwer) C' 意思是說,我要找開頭是 A 結尾是 C ,中間有一個以上的 "qwer" 字串的意思
以上就是本節的主要内容,有異議的地方評論區還望多多指教,如果感覺寫的還行,可以關注一波,點贊一波,多謝各位看官
,更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!