正則表達式:
Basic REGEXP:基本
Extended REGEXP:擴展
grep:使用基本正則表達式定義的模式來過濾文本的命令;
-E: 使用擴展正則表達式
-A #: after 後#行
-B #: before 前#行
-C #: 前後各#行
擴展正則表達式:
字符匹配:
.:匹配任意單個字符
[]:匹配指定範圍內的任意單個字符
[^]:匹配指定範圍外的任意單個字符
字符集合:[:digit:], [:lower:], [:upper:], [:punct:], [:space:], [:alpha:], [:alnum:]
次數匹配:
*:匹配其前面的字符任意次
?:匹配其前面的字符1次或0次
+: 匹配其前面的字符至少1次
{m,n}: 匹配其前面的字符至少m次,至多n次
位置錨定:
^:錨定行首,此字符後面的任意內容必須出現在行首
$:錨定行尾,此字符前面的任意內容必須出現在行尾
\<:錨定詞首,其後面的任意字符必須作爲單詞首部出現
\>:錨定詞尾,其前面的任意字符必須作爲單詞的尾部出現
分組:
():分組
\1, \2, \3, ...
或者
|: or
C|cat: Cat或cat, C或cat
grep -E = egrep
Tips
- [root@mysql ~]# grep -E '(C|c)at' test4.txt
-
找出/boot/grub/grub.conf文件中1-255之間的數字;
\<([1-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\>
- ifconfig | egrep --color '(\<([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\>\.){3}\<([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\>'
\逃逸符 讓一個元字符表示他本身的意義 \.