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 []
樓主把自己認為可能會被常用的參數用顏色,mark一樣
grep -V 這個可以看grep的版本
測試文本
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詳解
輸出控制
輸出行前綴控制
。 其它選項 退出狀態匹配成功,退出狀態碼為0,匹配失敗退出狀態碼為1,匹配出現錯誤退出碼為2