grep
ls /usr/bin | grep zip
cat text.txt | grep hello -ab10
重要引數-i 匹配忽略大小寫
-v 取反,即篩選不匹配
-c 列印匹配的數量
元字元:元字元使用時要用單引號括起來防止引數展開^ $ . [ ] - ? * + ( ) | \
任何字元:.grep '.zip' /usr/bin //.代表任意字元,佔一位,所以'.zip'形成了四位匹配數,並不會匹配到只含zip的檔案。
錨點:^(以後邊字元開頭) $(以前邊字元結尾)grep -h '^zip$' /user/bin
grep -i '^..j.r$' /usr/share/dict/words 在單詞表中查詢由五個字母構成,第三個字母為j,第五個字母為r的單詞。
grep '^$' 匹配空格
中括號表示式: 從乙個指定的字元集合中匹配乙個單個的字元。grep -h '[bg]zip' test.txt // 匹配bzip或者gzip
中括號表示式中的兩個特殊元字元:^(表否定),..(連字元表示乙個區域)grep -h '[^bg]zip' test.txt // 匹配不是bzip和gzip的至少四位文字,^只在中括號表示式第一位時生效,其他位置會被認為是普通字元。
grep -h '^[a..z]' test.txt // 匹配以大寫字母開頭的文字
交替:| 允許從一系列的字串或者是其它正規表示式中選擇匹配項echo "aaa" grep -e 'aaa|bbb' 匹配aaa或者bbb
grep -eh '^(bz|gz|zip)' text.txt // 可以用()包含交替然後和其他正規表示式元素結合起來匹配。
限定符
? 匹配零個或者乙個元素,使前面的元素可有可無。
匹配'(nnn) nnn-nnnn'或者'nnn nnn-nnnn' 即使()可有可無
echo "(555) 123-4567" | grep -e '^\(?[0-9][0-9][0-9]\)? [0-9][0-9][0-9]-[0-9][0-9][0-9][0-9]$'
* 匹配零個或者多個元素
+ 匹配乙個或者多個元素,即至少有乙個。
{} 匹配特定個數的元素
限定符 意思
n 匹配前面的元素,如果它確切地出現了 n 次。
n,m 匹配前面的元素,如果它至少出現了 n 次,但是不多於 m次。
n, 匹配前面的元素,如果它出現了 n 次或多於 n 次。
,m 匹配前面的元素,如果它出現的次數不多於 m 次。
'^\(?[0-9][0-9][0-9]\)? [0-9][0-9][0-9]-[0-9][0-9][0-9][0-9]$'
可簡化為 '^\(?[0-9]\)? [0-9]-[0-9]$'
Shell基礎 正規表示式
shell基礎 正規表示式 正規表示式 它用來在檔案中匹配符合條件的字串,正則是包含匹配。grep awk sed等命令支援正規表示式。而萬用字元用來在系統匹配符合條件的檔名,是完全匹配。ls find cp這些命令不支援正規表示式,所以只能使用shell自己的萬用字元來進行匹配了。元字元 作用 把...
shell 正規表示式基礎
1 常用的命令工具 grep egrep vim sed awk 2 基本的正則表達含義 d 匹配字母d 匹配任意單個字元 匹配乙個或多個 匹配任意多個字元 匹配字串的開頭 匹配字串的結尾 匹配集合中的任意單個字元 匹配否定,對括號中的集合取反 x y 匹配x到y連續的字串範圍 匹配轉義後的字串 匹...
Shell基礎之 正規表示式
普通字元 只是字面的意思 元字元 超過字面意思的意義 基本正規表示式元字元及其意義 0個或多個在 字元之前的那個普通字元 匹配任意字元 匹配行首 匹配行尾 匹配字元集合 轉義符 匹配前面字元出現n次 匹配前面字元至少出現n次 匹配前面字元出現n m次 hel o 可以匹配helll8o hello ...