標籤:shell Regex
Regex
\<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:]:大小寫字母
通配
注意通配和Regex不同,雖然有共同的符號
ls -l *.sh
匹配出以.sh結尾的檔案,而*在Regex中表示0個或多個前面的字元
ls -l 0?.sh
匹配以0開頭,且後面跟一個字元,以.sh結尾的檔案,而?在擴充Regex中表示0個或1個前面的字元
[]和[^]的用法和Regex相同
grep
文本搜尋工具
grep [選項] [模式] [檔案]
-c 只輸出匹配韓的數量
-i 忽略大小寫
-l 只列出符合匹配的檔案名稱,不列出具體的匹配行
-n 列出所有的匹配行,並顯示行號
-s 不顯示不存在或無匹配文本的錯誤資訊
-r 遞迴搜尋,不僅搜尋當前工作目錄,還搜尋子目錄
-q 禁止輸出任何結果,以退出狀態表示搜尋是否成功
-E 支援擴充的Regex
-F 不支援Regex,按照字串的字面意思進行匹配
-h 查詢多檔案時不顯示檔案名稱
-b 列印匹配行距頭部的位移量,以位元組為單位,如果與-o結合則為匹配單詞距頭部的位移量
-w 匹配整詞,即不把模式的Regex元字元解釋成特殊含義,如cer*就是cer*
-x 匹配整行,即如果匹配word*,則這行字能為word*才算匹配
注意:如果模式有空格則要用引號;檔案名稱可以用萬用字元(注意不是Regex);開頭的-也要加\進行轉移(以為-選項)
本文出自 “flyclc” 部落格,請務必保留此出處http://flyclc.blog.51cto.com/1385758/1540161