Shell編程三劍客之grep

正則表達式

正則表達式的定義:
正則表達式又稱正規表達式、常規表達式。在代碼中常簡寫爲 regex、regexp 或 RE。正則表達式是使用單個字符串來描述、匹配一系列符合某個句法規則的字符串,簡單來講, 是一種匹配字符串的方法,經過一些特殊符號,實現快速查找、刪除、替換某個特定字符串。
基礎正則表達式
以httpd配置文件爲例
爲了防止失誤對httpd的配置文件形成損壞,首先咱們先拷貝一份httpd配置文件到別處。
Shell編程三劍客之grep
1)、查找特定字符
可從httpd.txt文件中查找出特定字符「the」 所在位置
能夠使用命令:grep -n 'the' httpd.txt
Shell編程三劍客之grep
查找不包含「the」字符的行
能夠使用命令:grep -vn 'the' httpd.txt
Shell編程三劍客之grep
2)、利用中括號「[]」來查找集合字符
想要查找「then」與「they」這兩個字符串時,能夠發現這兩個字符串均包含「the」。此時執行如下命令:grep -n 'the[ny]' httpd.txt
便可同時查找到「then」與「they」這兩個字符串。「[]」中不管有幾個字符,都僅表明一個字符,也就是說「[ny]」表示匹配「n」或者「y」。
Shell編程三劍客之grep
查找包含重複單個字符「oo」時
能夠使用命令:grep -n 'oo' httpd.txt
Shell編程三劍客之grep
查找「oo」前面不是「r」的字符串
能夠使用命令:grep -n '[^r]oo' httpd.txt
Shell編程三劍客之grep正則表達式

若不但願「oo」前面存在大寫字母,能夠使用「grep –n'[^A-Z]oo'httpd.txt」命令實現
Shell編程三劍客之grep編程

查找包含數字的行能夠經過「grep –n '[0-9]' httpd.txt」命令來實現
Shell編程三劍客之grepide

3)、查找行首「^」與行尾字符「$」
查詢大寫字母開頭的行使用grep -n '^[A-Z]' httpd.txt
Shell編程三劍客之grep
查詢「.」結尾的行使用grep -n '.$' httpd.txt
由於小數點(.) 在正則表達式中也是一個元字符(後面會講到),因此在這裏須要用轉義字符「\」將具備特 殊意義的字符轉化成普通字符。
Shell編程三劍客之grep
查詢空白行時,執行「grep –n ‘^$’ httpd.txt」命令3d

4)、查找任意一個字符「.」與重複字符「*」
在正則表達式中小數點(.)也是一個元字符,表明任意一個字符,例如,查找以r開頭,t結尾,中間兩個未知字符的字符串,能夠使用命令grep -n 'r..t' httpd.txt。
Shell編程三劍客之grepregexp

查詢包含至少兩個 o 以上的字符串,則執行「grep –n ‘ooo*’ httpd.txt」命令便可。
Shell編程三劍客之grepblog

5)、查找連續字符範圍「{}」
由於「{}」在 Shell 中具備特殊 意義,因此在使用「{}」字符時,須要利用轉義字符「\」,將「{}」字符轉換成普通字符
(1)查詢兩個 o 的字符
grep -n 'o\{2\}' httpd.txt
Shell編程三劍客之grep字符串

相關文章
相關標籤/搜索