溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

如何正確的使用正則表達(dá)式grep

發(fā)布時(shí)間:2021-04-02 17:24:09 來源:億速云 閱讀:278 作者:Leah 欄目:互聯(lián)網(wǎng)科技

本篇文章為大家展示了如何正確的使用正則表達(dá)式grep,內(nèi)容簡明扼要并且容易理解,絕對能使你眼前一亮,通過這篇文章的詳細(xì)介紹希望你能有所收獲。

語法:grep 選項(xiàng) ‘word' filename

-c:打印符合要求的行數(shù)
-i:不區(qū)分大小寫
-n:在輸出符合要求的行的同時(shí)顯示行號
-v:打印不符合要求的行
-A:后跟一個(gè)數(shù)字n,表示打印符合要求的行以及下面n行
-B:后跟一個(gè)數(shù)字n,表示打印符合要求的行以及上面n行
-C:后跟一個(gè)數(shù)字n,表示打印符合要求的行以及上下各n行
-r:會(huì)把目錄下所有的文件全部遍歷
--color:把匹配到的關(guān)鍵詞用紅色標(biāo)示

例子:

過濾出帶有某個(gè)關(guān)鍵詞的行并輸出行號

grep -n ‘root' 1.txt

過濾出不帶有某個(gè)關(guān)鍵詞的行并輸出行號

grep -nv ‘root' 1.txt

過濾出所有包含數(shù)字的行

grep ‘[0-9]‘ 1.txt

過濾出所有不包含數(shù)字的行

grep -v ‘[0-9]‘ 1.txt

去除所有以#開頭的行

grep -v ‘^#‘ 1.txt

去除所有空行和以#開頭的行

grep -v ‘^$‘ 1.txt|grep -v ‘^#‘

過濾出以英文字母開頭的行

grep ‘^[a-zA-Z]‘ 1.txt

過濾出以非數(shù)字開頭的行

grep -v ‘^[0-9]‘ 1.txt或者grep ‘^[^0-9]‘ 1.txt

過濾任意一個(gè)或多個(gè)字符

grep ‘r.o‘ 1.txt;grep ‘rt‘ 1.txt ;grep ‘r.t‘ 1.txt

過濾出包含root的行以及下面一行

grep -A1 ‘root‘ 1.txt

過濾出包含root的行以及上面一行

grep -B1 ‘root‘ 1.txt

指定過濾字符次數(shù)

grep ‘o{2}‘ 1.txt

把一個(gè)目錄下,過濾所有.php文檔中含有eval的行

grep -r --include=".php" ‘eval‘ /data/

過濾兩個(gè)或多個(gè)關(guān)鍵詞

grep -E ‘123|abc‘ filename #找出文件中包含123或者abc的行

或者egrep ‘123|abc‘ filename

或者awk ‘/123|abc/‘ filename

egrep=grep -E

匹配1個(gè)或者1個(gè)以上+前面的字符

egrep ‘o+‘ 1.txt

匹配0個(gè)或者1個(gè)?前面的字符

egrep ‘o?‘ 1.txt

匹配roo或者匹配body

egrep ‘roo|body‘ 1.txt

用括號表示一個(gè)整體,下面例子會(huì)匹配roo或者ato

egrep ‘r(oo)|(at)o‘ 1.txt

匹配1個(gè)或者多個(gè)oo

egrep ‘(oo)+‘ 1.txt

.:表示任意一個(gè)字符
:表示0個(gè)或多個(gè)前面的字符
+:表示1個(gè)或多個(gè)+前面的字符
?:表示0個(gè)或1個(gè)?前面的字符
.*:表示任意個(gè)任意字符(包含空行)
注意:+和?grep不支持,egrep才支持。

上述內(nèi)容就是如何正確的使用正則表達(dá)式grep,你們學(xué)到知識(shí)或技能了嗎?如果還想學(xué)到更多技能或者豐富自己的知識(shí)儲(chǔ)備,歡迎關(guān)注億速云行業(yè)資訊頻道。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI