第三章 shell學習之正則表達式

正則表達式

\<the\>:精確匹配the,不包括包含the的單詞

[^b-d]:不包含b~d

a\{2\}:a出現2次

a\{2,3\}:a出現2~3次

a\{2,\}:a至少出現2次

[:upper:]:大寫字母(用的時候外面加一層[]表示匹配字符集合)

[:lower:]:小寫字母

[:digit:]:數字

[:alnum:]:大小寫字母和數字

[:space:]:表示空格或tab鍵

[:alpha:]:大小寫字母

通配

注意通配和正則表達式不同,雖然有共同的符號

ls -l *.sh

匹配出以.sh結尾的文件,而*在正則表達式中表示0個或多個前面的字符

ls -l 0?.sh

匹配以0開頭,且後面跟一個字符,以.sh結尾的文件,而?在擴展正則表達式中表示0個或1個前面的字符

[]和[^]的用法和正則表達式相同

grep

文本搜索工具

grep [選項] [模式] [文件]

-c 只輸出匹配韓的數量

-i 忽略大小寫

-l 只列出符合匹配的文件名,不列出具體的匹配行

-n 列出所有的匹配行,並顯示行號

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

-r 遞歸搜索,不僅搜索當前工作目錄,還搜索子目錄

-q 禁止輸出任何結果,以退出狀態表示搜索是否成功

-E 支持擴展的正則表達式

-F 不支持正則表達式,按照字符串的字面意思進行匹配

-h 查詢多文件時不顯示文件名

-b 打印匹配行距頭部的偏移量,以字節爲單位,如果與-o結合則爲匹配單詞距頭部的偏移量

-w 匹配整詞,即不把模式的正則表達式元字符解釋成特殊含義,如cer*就是cer*

-x 匹配整行,即如果匹配word*,則這行字能爲word*纔算匹配

注意:如果模式有空格則要用引號;文件名可以用通配符(注意不是正則表達式);開頭的-也要加\進行轉移(以爲-選項)


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