命令grep簡介正則表達式
利用該命令在文本中查找指定的字符串,是Linux中最經常使用的文本處理工具之一。工具
命令grep與正則表達式結合使用時,功能會很是強大。測試
命令grep會在文本文件中按照指定的正則表達式進行全局搜索,並將搜索出的行打印出來。spa
經常使用選項3d
1. -i,忽略大小寫blog
2. -n,顯示結果所在行號字符串
3. -c,統計匹配到的行數(注,不是匹配到的次數)test
4. -o,只顯示符合條件的字符串,而不是整行搜索
5. -v,反選,顯示出不符合的行grep
6. -w,匹配的是整個單詞
7. -Ax,結果所在行以後的指定行數,x爲行數
8. -Bx,結果所在行以前的指定行數,x爲行數
9. -Cx,結果所在行以前和以後的指定行數,x爲行數
10. -e,實現多個選項的匹配,邏輯or關係
11. -q,靜默模式,不輸出任何信息
eg. 當只關心是否匹配到的時候,使用此命令,而後,使用「echo $?」查看是否匹配成功,當返回0,表示成功,當返回1,表示失敗
實例講解
1. 爲了方便實驗,存在兩個用來測試的文本文件test.txt和test1.txt,內容以下所示
2. 若在文本test.txt中,區分大小寫地查找帶有字符串「grep」的行,則有
注意,默認狀況下,grep是區分大小寫的
3. 若在文本test.txt中,不區分大小寫地查找帶有字符串「grep」的行,使用選項「-i」,則有
4. 若在文本test.txt中,在區分大小寫的同時,帶行號的查找帶有字符串「grep」的行,使用選項「-n」,則有
5. 若在文本test.txt中,統計出現字符串「grep」的行數,使用選項「-c」,則有
注意,所顯示的內容中,並不包含對應的行內容,僅包含行數
6. 若在文本test.txt中,不區分大小寫地顯示所符合的字符串「abc」,使用選項「-i」和「-o」,則有
注意,並不能去重!!!
7. 若在文本test.txt中,顯示出不含有字符串「grep」的行,使用選項「-v」,則有
8. 若在文本test.txt中,顯示帶有單詞「grep」,而不是包含字符串「grep」的行,使用選項「-w」,則有
9. 若在文本test1.txt中,找出年齡爲18歲的同窗的姓名,則使用選項「-Bx」,則有
若要顯示名爲「李四」的年齡和性別,則有
若要顯示性別爲「男」的同窗的姓名、年齡、職業和籍貫,則有
10. 若在文本test.txt中,顯示出帶有字符串「grep」或「abc」的行,使用選項「-e」,則有
或使用「egrep」也能夠
11. 若在文本test.txt中,僅僅查看是否存在字符串「grep」,而不用顯示對應的行,則有
注意,選項「-q」是靜默模式的,若想查看是否查詢成功,則能夠顯示出「$?」的值。當「$?」爲0時,表示查詢成功,當「$?」爲1時,表示查詢失敗!