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