您好,登錄后才能下訂單哦!
這篇文章主要介紹了Linux中Shell腳本編程之正則表達式的示例分析,具有一定借鑒價值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。
一 正則表達式與通配符
1 正則表達式是用在文件中匹配符合條件的字符串,正則是包含匹配,grep,awk,sed等命令可以支持正則表達式
2 通配符是用來匹配符合條件的文件名,通配符是完全匹配,ls,find,cp這些命令不支持正則表達式,所以只能用Shell自己的通配符來進行匹配了。
二 基礎正則表達式
這里引用兄弟連的測試文本
1 * 前一個字符匹配0次或任意多次
grep “a*” test_rule.txt
匹配所有內容,包括空白行(由于*可以匹配0次)
grep “aa*” test_rule.txt
匹配至少包含有一個a的行
grep “aaa*” test_rule.txt
匹配至少包含有兩個a的行
2 . 匹配除了換行符之外的任意一個字符
grep “s..d” test_rule.txt
匹配s和d直接一定要有兩個字符的行
grep “s.*d” test_rule.txt
匹配s和d直接任意字符
grep “.*” test_rule.txt
匹配所有內容
3 ^匹配行首 $匹配行尾
grep “^M” test_rule.txt
匹配以大寫M開頭的行
grep “n$” test_rule.txt
匹配以小寫n結尾的行
grep -n “^$” test_rule.txt
匹配空白行
4 [] 匹配括號中指定的任意一個字符,只匹配一個字符
grep “s[ao]id” test_rule.txt
匹配s和i字母之間,要么是a,要么是o的行
grep “[0-9]” test_rule.txt
匹配任意一個數字
grep “^[a-z]” test_rule.txt
匹配用小寫字母開頭的行
5 [^] 匹配除括號中以外的任意一個字符
grep “^[^a-z]” test_rule.txt
匹配不用小寫字母開頭的行
grep “^[^a-zA-Z]” test_rule.txt
匹配不用字符開頭的行
6 “\” 轉義符
grep “.$” test_rule.txt
匹配以.結尾的行
7 {n} 表示其前面的字符恰好出現n次
grep “a{3}” test_rule.txt
匹配字母a連續出現3次的行
grep “[0-9]{3}” test_rule.txt
匹配包含連續3個數字的行
8 {n,} 表示其前面的字符出現不小于n次
grep “^[0-9]{3,}” test_rule.txt
匹配至少連續3個數字開頭的行
9 {n,m} 表示其前面的字符出現不小于n次,最多m次
grep “sa{1,3}i” test_rule.txt
匹配s和i之間最少1個a,最多3個a
感謝你能夠認真閱讀完這篇文章,希望小編分享的“Linux中Shell腳本編程之正則表達式的示例分析”這篇文章對大家有幫助,同時也希望大家多多支持億速云,關注億速云行業資訊頻道,更多相關知識等著你來學習!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。