亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

shell 正則表達式

發布時間:2020-07-02 19:36:02 來源:網絡 閱讀:131097 作者:大阿鵬 欄目:系統運維

通配符 ? ? ? ?    意義

  *         匹配任意多個字符(包括零個或一個)
  ?         匹配任意一個字符(不包括零個)
  [characters]    ?匹配任意一個屬于字符集中的字符
  [!characters]    匹配任意一個不是字符集中的字符
  [[:class:]]     ?匹配任意一個屬于指定字符類中的字符

  

   ? 字符類         意義

  [:alnum:]      匹配任意一個字母或數字
  [:alpha:]       匹配任意一個字母
  [:digit:]       ?匹配任意一個數字
  [:lower:]      ?匹配任意一個小寫字母
  [:upper]       匹配任意一個大寫字母



基礎正則表達式符號

符號描述實例
.代表單個字符(必須存在)

a..b

可以表示acdb

? ? ? aaab 、abbbb

但不可以表示acb、ab、aba等

*

要和通配符區分開,匹配 * 前面一個字符的0個或多個

*后面的字符一定要在*前面字符的后面

另外*前后字符必須相鄰否則匹配不到

a*b

可以表示ab、aab、b、abababab

但不可以表示acb、ba等

acb只會匹配到b,也就是視為b前面有0個a

ba也只會匹配到b,同樣視為b前面有0個a

^匹配 ^ 后面字符串開頭

?輸入:echo? -e? abcd\accc | grep "^ab"

輸出:abcd

$?匹配 $ 前面字符串結尾??

?輸入:echo? -e? abcd\accc | grep "cc$"

輸出:accc

?.*?匹配任意個字符(0到多個)

?a.*b

和通配符里面的 * 大致類似

可以代表ab、 acb、 a……b

但不能代表b……a

?[]

?表示范圍,可以用來進行模糊匹配

常用選項為【a-z】 【0-9】

1.? grep【0-9】 text 過濾出含數字的行

2.? grep【a-z】 text 過濾出含小寫字母的行

3.? grep 【abc】 text 過濾出含有a,b,c的行(注意這個abc是分別匹配,也就是相當于匹配含有a的行,b的行,c的行,并不是字符串abc的行

?{}

{n,m}表示匹配 {}?前面字符的至少n個,最多m個 字符,注意:是連在一起的連續字符

還可以為{n,}表示至少有n個

{,m}表示最多有m個

?1.輸入echo abbcdfbjk | grep -E "b{1,2}"

輸出?abbcdfbjk?

2. 如果?輸入 echo abbcdfbjk | grep -E "b{2,}"? #表示至少兩個

輸出結果為?abbcdfbjk? 可以看到只有連在一起的兩個bb被匹配到,也就是說明了{}里面的數字表示的不是匹配到的個數,而是匹配字符的長度,像這個例子就是要求出現 b 的長度至少是2,所以只有 bb 被匹配到了

3.? 輸入 grep -E "ac{2,5}b"?匹配a和b之間至少2個最多5個c的行,但是acb要連在一起

?【^】?【^a】表示匹配 a 以外的所有字符

?輸入? echo? -e abc \ def \ lmn | grep "[^f-z]"

輸出? abc? def lmn,只有[a-e]配匹配到

?^[^]?匹配 ^[^a]中的以a為開頭以外的所有行?grep "^[^#]"? /etc/passwd? ?匹配? /etc/passwd? 里面不以#開頭的所有行
\<? ;? \>

錨定 單詞首部 (尾部)??

表示在匹配在首部(尾部)以空格或特殊字符為分隔的指定字符。如果同時錨定首尾? \<? \>? 則表示這個字符的準確匹配,它的前后為特殊字符或空格分隔,不會和任何字符直接連接

注意:必須要加 \ 轉義,即使使用擴展正則也要加? \? 進行轉義

?輸入?:echo "hi,rootamroot" | grep "\<root"
輸出:hi,rootamroot

輸入: echo "hiroot iamroot" | grep "root\>"
輸出: hiroot?iamroot

?輸入: echo "hi,root? iamroot" | grep "\<root\>"
輸出:hi,root??iamroot

?()

?\1? 調用前面的參數—第一個分組(也就是括號里的參數)

如果用擴展正則則不需要 \ 來進行轉義

?

過濾出一行中有兩個相同數字的行

# grep "\([0-9]\).*\1"? /etc/passwd

過濾出行首和行位字母相同的行

# grep "^\([a-z]\).*\1$" /etc/passwd

擴展正則

 擴展正則包含基礎正則,而且多出了? +? ? ?? ?|? ? ()四個指令(注意這里的 | 要和管道符分開)   擴展正則不需要像基礎正則一樣對某些符號進行轉義(一般是用 反斜杠? \? 來進行)

?

+?

作用:重復一個或者一個以上的前一個字符

示例:執行“egrep -n 'wo+d' test.txt”命令,即可查詢"wood" "woood" "woooooood"等字符串

? ?

作用:零個或者一個的前一個字符

示例:執行“egrep?-n 'bes?t' test.txt”命令,即可查詢“bet”“best”這兩個字符串

? ?

|?

作用:使用或者(or)的方式找出多個字符

示例:執行“egrep -n 'of|is|on' test.txt”命令即可查詢"of"或者"if"或者"on"字符串

? ?

() ?

作用:查找“組”字符串

示例:“egrep -n?'t(a|e)st' test.txt”。“tast”與“test”因為這兩個單詞的“t”與“st”是重復的,所以將“a”與“e”列于“()”符號當中,并以“|”分隔,即可查詢"tast"或者"test"字符串

? ?

()+??

作用:辨別多個重復的組

示例:“egrep -n?'A(xyz)+C' test.txt”。該命令是查詢開頭的"A"結尾是"C",中間有一個以上的 "xyz"字符串的意思

? ?



向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

子长县| 建阳市| 天镇县| 肥东县| 庆元县| 巴彦淖尔市| 北辰区| 正安县| 汨罗市| 西乌珠穆沁旗| 铜山县| 商南县| 泰顺县| 精河县| 桂林市| 新宾| 望奎县| 东阿县| 长顺县| 都兰县| 石河子市| 梨树县| 卓资县| 德清县| 济南市| 高邮市| 呼伦贝尔市| 即墨市| 侯马市| 河西区| 木里| 古浪县| 松潘县| 桃源县| 宁阳县| 黑山县| 札达县| 当阳市| 宜兴市| 弥渡县| 五大连池市|