首頁  >  文章  >  php教程  >  grep詳解

grep詳解

高洛峰
高洛峰原創
2016-12-13 15:08:451317瀏覽

OK,學完了正規表達式,sed,awk,文本三劍客就剩下grep了。一塊拿下吧

先看看什麼是grep吧

百度了一下

英文:global search regular expression(RE) and print out the line

漢語:全面搜尋正規表示式並把表達式列印出來表達式

grep是一種強大的文本搜尋工具,它能使用正規表示式搜尋文本,並將符合的行列印出來。

grep家族包括,grep,egrep和fgrep

原理

說說grep的原理吧?

在給出文件列表或標準輸入後,grep會對匹配的一個或多個表達式的文本進行搜索,並只輸出匹配

(或者不匹配)的行或文本

其實,說白了, grep的過程和sed的尋址過程差不了多。

參照sed處理過程,我們總結下grep的處理過程

將一行文本讀取模式空間

根據指定的正則,搜尋該行文本,看是否有匹配的內容

如果,整行一次匹配都沒有,該行不做後續的處理了,刪除該行並讀入下一行

如果匹配成功,則打印該行,並讀入下一行。

這麼看起來,grep其實就是一個簡化版的sed,對於的匹配成功的行自動的打印出來,而sed中需要指定p命令來打印,否則整個文本都會被打印。 當然grep的option提供了很多的參數,也有很多sed沒有的功能。

OK,既然這樣了,那grep就剩下兩塊內容了,一個是grep的參數,一個是正則尋址

說到正則,grep中使用正則和sed,awk有點區別,sed或awk中要用//圈起來。而grep則不需要


語法格式

grep [option] pattern [file...]

grep [options] [-e pattern] -f []

grep [options] [-e pattern] -f []

grep ,grep -F相當於fgrep,grep -r 相當於rgrep

下面來看看grep的[options]吧

介紹[options]的過程中會弄點小例子,練習下元字符的及grep,egrep ,fgrep的使用。


樓主把自己認為可能會被常用的參數用顏色,mark一樣


grep -V   這個可以看grep的版本

測試文本

🠎5



測試文本

🠎5
Alice Ford, 22 East Broadway, Richmond VA
Orville Thomas, 11345 Oak Bridge Road, Tulsa OK 1 Road, Sudbury MA
Hubert Sims, 328A Brook Road, Roanoke VA
Amy Wilde, 334 Bayshore Pkwy, Mountain View CA
Sal Carpenter, 73 6th Street, Boston MA
ansible is ansibleible🠎帶are ansible

匹配器的選擇

grep詳解

grep詳解

grep詳解

輸出控制

grep詳解

輸出行前綴控制

grep詳解

其它選項

grep詳解

退出狀態

grep詳解匹配成功,退出狀態碼為0,匹配失敗退出狀態碼為1,匹配出現錯誤退出碼為2

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn