通配符
參考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