shell學習(6)通配符和正則

通配符

參考https://blog.csdn.net/blackfwhite/article/details/80382849
通配符是用於文件名匹配,常用於find、ls、cp 、mv

通配符 含義 實例
* 匹配 0 或多個字符 a*b a與b之間可以有任意長度的任意字符, 也可以一個也沒有, 如aabcb, axyzb, a012b, ab。
? 匹配任意一個字符 a?b a與b之間必須也只能有一個字符, 可以是任意字符, 如aab, abb, acb, a0b。
[list] 匹配 list 中的任意單一字符 a[xyz]b a與b之間必須也只能有一個字符, 但只能是 x 或 y 或 z, 如: axb, ayb, azb
[!list]或[^list] 匹配 除list 中的任意單一字符 a[!0-9]b a與b之間必須也只能有一個字符, 但不能是阿拉伯數字, 如axb, aab, a-b。
[c1-c2] 匹配 c1-c2 中的任意單一字符 如:[0-9] [a-z] a[0-9]b 0與9之間必須也只能有一個字符 如a0b, a1b… a9b。
[!c1-c2]或[^c1-c2] 匹配不在c1-c2的任意字符 a[!0-9]b 如acb adb
{string1,string2,…} 匹配 sring1 或 string2 (或更多)其一字符串 a{abc,xyz,123}b 列出aabcb,axyzb,a123b

在這裏插入圖片描述
在這裏插入圖片描述

正則

正則表達式是用來匹配字符串的,針對文件內容的文本過濾工具裏,大都用到正則表達式,如vi,grep,awk,sed等

元字符 含義 示例 說明
. 匹配一個除換行符以外的任意字符 a.b 匹配以a開頭b結尾,中間有一個任意字符的單詞
^ 匹配行首 ^ab 匹配以ab爲行首的單詞
$ 匹配行尾 ab$ 匹配以ab爲行尾的單詞
\ 轉義符 \ < 轉換<原本的含義
\ < \ > 匹配一個指定的單詞 \ <ab\ > 精準匹配ab這個單詞
| 邏輯或 ab|AB 匹配ab或者AB
範圍 含義 示例 說明
[ ] 匹配一個指定範圍的字符 a[xyz]b 匹配以a開頭b結尾,中間有一個x或y或z的單詞
[^ ] 匹配一個不在指定範圍的字符 a[^xyz]b 匹配以a開頭b結尾,中間有一個不是x或y或z的字符的單詞
重複 含義(儘量多地) 示例 說明
? 使前面的字符重複0次或1次 a? 匹配a重複了0次或1次的單詞
* 使前面的字符重複0次或多次 a* 匹配a重複了0次或多次的單詞
+ 使前面的字符重複1次或多次 a+ 匹配a重複了1次或多次的單詞
{n} 使前面的字符重複n次 a{6} 匹配a重複了6次的單詞
{n,} 使前面的字符重複n次或以上 a{6,} 匹配a重複了6次或以上的單詞
{,m} 使前面的字符重複n次或以上 a{,6} 匹配a重複了最多6次的單詞
{n,m} 使前面的字符重複n次到m次 a{6,9} 匹配a重複了6次到9次的單詞

在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
匹配ip
在這裏插入圖片描述
在這裏插入圖片描述
注意,grep默認僅支持基礎正則表達式,如有要用到?、+、{}、()、|做正則篩選,需要加上-E

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章