字符匹配git
. : 任意單個字符spa
[] : 指定範圍內的任意單個字符blog
[^]: 指定範圍外的任意單子字符字符串
[:alnum:]:字母和數字it
[:alpha:]:任意英文大小寫字符 : A-Z a-zgrep
[:lower:]:小寫字母im
[:upper:] :大寫字母英文
[:blank:]:空白字符 空格和製表符img
[:space:]:水平和垂直的空白字符tab
[:cntrl:]:不可打印的控制字符 退格 刪除 警鈴
[:digit:]: 十進制數字
[:xdigit:]:十六進制數字
[:graph:]:可打印的非空白字符
[:print:]:可打印字符
[:punct:]:標點符號
匹配次數
* : 任意次數包括0次
.* : 任意長度的任意字符
\? : 前一個字符0或1次
\+ : 前一個字符串至少1次
\{n\} : 前字符N次
\{m,n\}:前字符至少m次,最多n次
\{,n\} : 前字符最多n次
\{n,\} : 前字符最少n次
位置錨定
^:行首 grep -v "^#" /etc/fstab |grep -v "^$" (grep 排除 「井號開頭」 /etc/fstab |grep 排除 「空行」)
$:行尾
^$:空行
^[[:space:]]*$ : 空白行
詞首詞尾:
\<或 單詞詞首 例子:grep 「\<root」 /etc/passwd
\>或 單詞詞尾 例子:grep 「root\>」 /etc/passwd
\<root\> 匹配整個單詞 等價於 -w
分組
\(\):括號優先級最高 例子:echo abcabcabc | grep \(wang\)\{3\} (abc出現3次)
\1:匹配括號 從左半括號到右半括號之間的字符(注意 不是規則)
| :或者 \(a\|b\)xy 匹配 a或者b 後面跟xy axy bxy 均可以匹配