正则表达式:
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])\>'
\逃逸符 让一个元字符表示他本身的意义 \.