grep

1、grep

grep是g一種查找過濾工具,grep支持正則表達式


2、正則表達式

規定一些特殊語法表示字符類、數量限定符和位置關係,然後用這些特殊語法和普通字符一起表示 一個模式,這就是正則表達式。


形式:' 表達式內容 '


1)字符類

. 匹配任意字符的一次出現


[] 匹配括號中的任意字符的一次出現


- 在[]內表示字符範圍


^ 例如:[^xy] 匹配除括號內字符之外的任意字符的一次出現


[[:digit:]] 匹配一個數字 [[:alpha:]] 匹配一個字母


2)數量限定符

? 緊跟在它前面的單元匹配零次或一次


+ 緊跟在它前面的單元匹配一次或多次


* 緊跟在它前面的單元匹配零次或多次


{N} 緊跟在它前面的單元匹配N次


{N,} 緊跟在它前面的單元匹配至少N次


{N,M} 緊跟在它前面的單元匹配至少N次,最多M次


3)位置限定符

^ 匹配行首的位置


$ 匹配行尾的位置


\< 匹配單詞開頭的位置


\> 匹配單詞結尾的位置


\b 匹配單詞開頭或結尾的位置


\B 匹配不是單詞開頭或結尾的位置


4)特殊字符

\ ? + {} | ()

這些字符在擴展正則和基準正則有不同的含義,在基準正則中代表普通字符,想要使用其特殊含義需要轉義字符轉義;在擴展正則中代表特殊含義字符,想要使用其普通含義需要轉義字符轉義。


例如:匹配合法的手機號碼

wKioL1esaZ6igEuGAABuSAAB13g345.png-wh_50

解析命令

wKiom1esa-OhFCOlAAF2gNbRQ1U380.png-wh_50


3、grep選項

--colour 高亮顯示


-l 查詢多文件時只輸出包含匹配字符的文件名


-L 打印不匹配模板的文件清單


-n 顯示匹配行及行號


-s 不顯示不存在或無匹配文本的錯誤信息


-? 同時顯示匹配行上下的?行,如:grep -2 pattern filename同時顯示匹配行的上下2行


-c 只打印匹配的行數,不顯示匹配的內容


-h 當搜索多個文件時,不顯示匹配文件名前綴


-i 忽略大小寫差別


-o 只顯示正則表達式匹配的部分


-q 取消顯示,只返回退出狀態。0則表示找到了匹配的行


-v 反檢索,只顯示不匹配的行


-w  如果被\<和\>引用,就把表達式做爲一個單詞搜索


-R, -r, 遞歸的讀取目錄下的所有文件,包括子目錄。 比如grep -R 'pattern' test會在 test 及其子目錄下的所有文件中,匹配 pattern


-V 顯示軟件版本信息


4、grep與egrep

egrep命令等同於grep -E,利用此命令可以使用擴展的正則表達式對文本進行搜索,並把符合用戶需求的字符串打印出來。


5、grep與fgrep

fgrep命令等同於grep -F,它利用固定的字符串來對文本進行搜索,但不支持正則表達式的引用,所以此命令的執行速度也最快。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章