正则表达式:
-简单的说,正则表达式就是一套处理字符串的规则和方法,以行为单位进行处理
-通过特殊的符号的辅助,我们可以快速的过滤,替换某些特定的字符串
-运维工作中会有大量访问日志,错误日志,如何能够快速过滤出我们需要的内容,靠正则表达式
-awk,sed,grep三剑客配合正则表达
基础正则表达式
1)^word 搜索以word开头的
2)word$ 搜索以word结尾的
-以grep为例:[root@localhost ~]# grep "^I" oldboy.txt 参数:-i不区分大小写
3). 代表且只能代表任意一个字符:[root@localhost ~]# grep "bl.g" oldboy.txt
4) 转译符号,让有特殊意义的字符还原原型
5)* 重复0个或多个前面的一个字符 例子:o*
6).* 匹配所有字符
7)[] 字符集和的重复特殊字符的符号 例子:[root@localhost ~]# grep "b[lo]og" oldboy.txt
8)[^word] 匹配不不包含^后的任意字符的内容 例子:[root@localhost ~]# grep "[^oldboy]" oldboy.txt
9)a{n,m} 重复n到m次,前一个重复字符 在这里注意是转译{}[root@localhost ~]# grep "490{2,3}448" oldboy.txt
{n,} 重复至少n次,前一个重复字符 这3个用egrep不用转译
{n} 重复n次,前一个重复字符
扩展的正则表达式 注意扩展表达式得用egrep才可以执行命令 或-E
1)+ 重复一个或一个以上前面的字符 [root@localhost ~]# egrep "490+448" oldboy.txt
2)? 重复0个或一个前面的字符
3)| 用或的方式查找多个符合的字符串 [root@localhost ~]# egrep "3306|1521" /etc/services
4)() 找出“内容”字符串 [root@localhost ~]# egrep "490(0|00)448" oldboy.txt