事實上,一般實驗者只需要熟悉基礎的正規表示式就足夠了。不過有時候為了簡化命令操作,了解一些使用範圍更廣的擴充套件表示式,會更加方便。
正規表示法:
$ grep -v '^$' regular_express.txt |grep -v '^#'
需要使用到管線命令來搜尋兩次! 那麼如果使用延伸型的正規表示法,我們可以簡化為:
$ egrep -v '^$|^#' regular_express.txt
利用支援延伸型正規表示法的 egrep 與特殊字元 「|」 的組功能來區隔兩組字串,如此一來,是否方便很多呢?
此外,grep 預設僅支援基礎正規表示式,如果要使用擴充套件性正規表示式,可以使用 grep - e。grep -e 與 egrep 相當於命令別名關係。
$ egrep -n 'go+d' regular_express.txt
普通寫法:
$ grep -n 'goo*d' regular_express.txt
$ egrep -n 'go?d' regular_express.txt
操作截圖:
上述三條命令結果如上,發現 『goo*d』 與 『go+d』 等同,而 『go?d』 結果不同。
$ egrep -n 'gd|good' regular_express.txt
$ egrep -n 'g(la|oo)d' regular_express.txt
也就是搜尋(glad)或 good 這兩個字串
操作截圖:
$ echo 'axyzxyzxyzxyzc'|egrep 'a(xyz)+c'
$ echo 'axyzxyzxyzxyzc'|egrep 'a(xz)+c'
也就是要找開頭是 a 結尾是 c 中間有乙個以上的 『xyz』 或 『xz』 字串的意思。
結果顯示 『a(xyz)+c』 可以匹配, 『a(xz)+c』 沒有匹配項。
操作截圖:
擴充套件正規表示式
使用egrep或者grep e 一般都是使用egrp 語法 擴充套件正規表示式 re字元 意義與範例 重複乙個或者乙個以上的前乙個字元 egrep n go d regular express.txt 零個或者乙個前乙個字元 egrep n go?d regular express.txt or的意...
擴充套件正規表示式
擴充套件正規表示式 1.顯示三個使用者root,cisco,ccnp的uid和預設shell 普通正規表示式與擴充套件正規表示式 17 27 08 root localhost data cat etc passwd grep root b ccnp b cisco b cut d f1,3,7 r...
擴充套件正規表示式 egrep
grep 命令僅支援基礎正規表示式,如果使用擴充套件正規表示式,需要使用 egrep 或 awk 命令。這裡我們直接使用 egrep 命令。egrep 命令與 grep 命令的用法基本相似。egrep 命令是乙個搜尋檔案獲得模式,使用該命令可以搜尋檔案中的任意 字串和符號,也可以搜尋乙個或多個檔案的...