原始出處 、作者資訊和本宣告。否則將追究法律責任。
這一節學習了萬用字元和正規表示式在grep裡面使用。
首先看看shell下的萬用字元。
最最常見的符號如下所示:
數字 [0-9]
字母 [a-z]
非字母[^a-z]
非數字[^0-9]
任意符號 *
轉義符號 \
大寫 [[:upper:]]
小寫 [[:lower:]]
數字 [[:digit:]]
字母 [[:alpha:]]
數字+字母[[:alnum:]]
空格 [[:blank:]]
看看例子
例1第乙個列出了數字和字母開頭的檔案
第二個列出了數字和-開頭的檔案
第三個列出來了數字開頭的檔案
例2如果直接查詢vsftp* 沒問題;但是如果在當前目錄下建立了匹配這個格式的檔案,那得到的結果就是當前目錄的檔案而不是軟體包了,因為yum是shell 的子程序,這個* 萬用字元在shell就被解析了;可以加引號或者轉移符號來避免誤會
下面來看看正規表示式在grep裡面的使用
grep之前已經學習過了,簡單的表達形式是 【grep 選項 字串 檔案】
選項可以是-n 行號,-v 反向選擇,-a 文字檔案,-i 忽略大小寫
萬用字元在grep一樣可以使用,不過有的符號意思發生了改變。
例3先看個基本的例子,反向搜尋沒有#的行,如果不加引號,他會被shell直接解析,而不是在grep中進行解析
^符號如果是在方括號裡面,表示否定; 如果是單引號裡面表示這個字串是以^後面的字元開頭的
對比如下所示
如果表示結尾的字元,可以用'$', 如果直接輸入『^$', 則表示空行
例4
空行如何表示乙個或者多個字元?我們可以用. (小圓點)來表示任意乙個符號,表示這個位置就有個符號,隨便是啥都行;* (星號) 可以表示有0個或者多個重複的符號,比如to* 可以表示的格式是t******xx,to***xx,too******x ...都是可以的
例5 比如 to* 和 t.m的區別
除了 小圓點和星號,我們還可以使用?表示0或1次; +表示1次以上, 表示表示式出現至少m次,最多n次;這需要使用擴充套件正規表示式-p或者-e,否則直接執行無效
例 6 直接執行沒有結果,-p用perl的方式來解析,就可以了 表示 o 出現3次,表示出現了2次到4次
to.?m 裡面 . 表示任意乙個字元,?表示這個任意字元出現了0次或者1次,因此滿足 tom, toxm 的字串都是可以的
類似的 to.+m裡面 .表示任意字元,+表示這個字元出現了1次或者多次,那麼匹配的字串是toxm,toxxm,to***m,換句話說滿足to開頭,m結尾的字串都是可以的
最後做個練習,如何只輸出ifconfig裡面ip的結果,不准用awk
這個能夠匹配的寫法太多了,豆子自己寫了個比較複雜的
下面是老師的寫法
本文出自 「麻婆豆腐」 部落格,請務必保留此出處
sql知識 05萬用字元和正則
以學生表為例子演示萬用字元 萬用字元 silecard 用來匹配值的一部分特殊字元。搜尋模式 search pattern 有字面值 萬用字元或兩者組合構成的搜尋條件。是常用的,在搜尋串當中標識任何字元出現的任一次數。select from student 學生表 where sname 姓名 雖然...
四 萬用字元過濾 正規表示式
為在搜尋子句中使用萬用字元,必須使用 like 操作符。like 指示mysql,後跟的搜尋模式利用萬用字元匹配而不是直接相等匹配進行比較。1.任何字元出現任意次數。select column name1 from table name where column name2 like jet 檢索以...
? a z 0 9 萬用字元 學習
萬用字元顧名思義就是通用的匹配資訊的符號,比如星號 就是代表匹配零個或多個字元,問號 是代表匹配單個字元,中括號內加上數字 0 9 代表匹配單個阿拉伯數字的字元,而中括號內加上字母 abc 則是代表匹配單個指定的英文本母。俗話講百聞不如一見,看書不如做實驗,例如匹配下所有在 dev目錄中且以sda開...