Shell正規表示式與萬用字元

2021-07-11 22:08:10 字數 2974 閱讀 7301

正規表示法:就是處理字串的方法,他是以行為單位來進行字串的處理行為,透過一些特殊符號的輔助,可以讓使用者輕易的達到「搜尋/刪除/取代」某特定字串的處理程式

萬用字元和正規表示法的區別:

萬用字元代表的是bash操作介面的乙個功能,但正則表示法是一種字串處理的『表示法』,只要工具程式支援這種表示法,那麼該工具程式就可以用來作為正規表示法的字串處理之用

正規表示法:

基礎正規表示法:簡單的字串處理

延伸正規表示法:群組的字串處理

基礎正規表示法:

[  ]                  :  利用中括號來搜尋集合位元組    [a-za-z]    [^0-9] 

.                     : 小數點代表『一定有乙個任意位元組』的意思。   g..d   

^                  :   代表行首定位符              ^[a-z]    ^#   

$               :  行尾定位符             the$    \.$       ^$

*                    : 星星號代表『重複前乙個位元組,0到無窮多次』的意思,為組合形態。   ooo* 

.*                     : 代表零個或多個任意位元組      找出任意數字         [0-9]*

\             : 限定連續字元的範圍{}, 就是限制乙個範圍區間內的重複位元組數。  因為的符號在shell中是有特殊意義的,因此,我們必須要使用跳脫字元\來讓他失去意義才行。x\   x 重複 m 次,x\   x 重複 至少m 次,x\  x 重複 至少m 次,但不超過n次,     go\g       go\g     

\ ( root \ )               : 將root這個內容儲存在「保留空間」,最大儲存九個

\n                      :   通過\1 至\9 呼叫保留空間中的內容        

查詢包含以root:開頭並以:root結尾的字序列

grep     --color      「\ ( root \ ) \ ( : \ ).*\2\1」   /etc/passwd

擴充套件正規表示式:

等同於基本正規表示式

+         表示前面出現過一次或多次,如tom+     --tom,tomm,tommm        

?     前面的字元出現0次或者1次  如tom?   --tom, to........

|      匹配邏輯或者,即匹配    |  前或後的字串

(  )     匹配正則集合

萬用字元:

[  ]                          匹配列表內的任意字元,比如[abc],匹配a、b、c當中的乙個字元  [^0-9] [a-z]  [a-z]

?                             匹配任意乙個字元

*                             匹配0到無窮多個任意字元

擴充套件萬用字元:

?()     括號裡面的值可以出現0次也可以1次

*()       括號裡面的值可以出現任意次    0次或1次或多次

+()      括號裡面的值可以出現1次或是多次

@()     括號裡面的值可以只能出現1次

posix規範:

特殊表示法                                  代表意義

[:alnum:]                                      代表英文大小寫及數字,亦即0-9,a-z,a-z

[:alpha:]                                       代表任何英文大小寫位元組,亦即a-z,a-z

[:blank:]                                       代表空白鍵與[tab]按鍵兩者

[:cntrl:]                                        代表鍵盤上面的控制按鍵,亦即包括cr,lf,tab,del....等等

[:digit:]                                         代表數字而已,亦即0-9

[:graph:]                                      除了空白位元組(空白鍵與[tab]按鍵)外的其他所有按鍵

[:lower:]                                        代表小寫位元組,亦即a-z

[:print:]                                         代表任何可以被列印出來的位元組

[:punct:]                                        代表標點符號(punctuation  symbol),亦即: ''   '    ?  !; : # $ ....

[:upper:]                                        代表大寫位元組,亦即a-z

[:space:]                                        任何會產生空白的位元組,包括空白鍵,[tab],cr 等等

[:xdigit:]                                        代表16進製的數字型別,因此包括:0-9,a-f,a-f的數字與位元組

note:

$(  ) 代表命令      和`` 相等

$(( ))  運算

[  ]  判斷功能      和test相等 

大括號裡寫,或. 表示所有的值都被呼叫      mkdir   /  -p

Shell 正規表示式與萬用字元

正規表示式與萬用字元 1.正規表示式用來在檔案中匹配符合條件的字串,正則是包含匹配。grep awk sed等命令可以支援正規表示式。2.萬用字元用來匹配符合條件的檔名,萬用字元是完全匹配。ls find cp這些命令不支援正規表示式,所以只能使用shell自己的萬用字元來進行匹配。基礎正規表示式 ...

Shell萬用字元 正則 正規表示式

shell萬用字元 正則 正規表示式 shell 中支援使用萬用字元,常用的萬用字元如下 表示任意單個字元 表示任意長度的任意字串 表示匹配放在中的字符集中的任意乙個字串 大括號中的字串中用英文逗號隔開。www.2cto.com 宣告 以下的顯示目錄下的所有檔案不包括遞迴。示例1 顯示當前目錄下ap...

萬用字元與正規表示式

萬用字元與正規表示式很容易混淆,首先要明白二者是不同的,個人感覺萬用字元用於linux的shell命令 如檔名相關操作 中,而正規表示式用於文字內容中的字串搜尋和替換等。萬用字元是linux系統本身就支援的,而正規表示式用於vim編輯器或awk程式,這些文字處理工具正是由於支援正規表示式才變得強大。...