一、何为正则表达式?
正则表达式就是用某种模式去匹配一类字符串的一个公式。
正则表达式可以分为:
1.基本正则表达式:grep
2.扩展正则表达式:egrep
3.不搜索正则表达式:fgrep
二、正则表达式对于系统管理员的用途
对于系统管理员来说,正则表达式是一个“不可不学的好东西”。由于系统在繁忙的情况之下,每天产生的信息会多到你无法想象的地步,而我们也都知道,系统的“错误信息登录文件”的内容记载了系统产生的所有信息,当然,这包含你的系统是否被“***”的纪录数据。但是系统的数据量太大了,要系统管理员的你每天去看这么多的信息数据,想不疯掉都很难,这个时候,我们就可以透过正则表达式的功能,将这些登录的信息进行处理,仅取出“错误”的信息来进行分析。
三、grep
1.语法:[root @test /root ]# grep [options] PATTERN FILE1,...
2.参数说明:
-a :将二进制文件以 文本文件的方式搜寻数据
[root @test /root]# grep 'root' /var/log/secure
: 搜索 /var/log/secure 这个文件中包含 root 的行[root @test /root]# grep -v 'root' /var/log/secure
搜索没有 root 的行
3.正则表达式的特殊字符指令
^PATTERN:行首锚定符,指定的字符必须出现在行首
PATTERN$:行尾锚定符,指定的字符必须出现在行尾
^PATTERN$:这一行只有一个PATTERN单独成行
"\<PATTERN"(或者'\<PATTERN'):词首锚定符
"PATTERN\>"(或者'PATTERN\>'):词尾锚定符
"\<PATTERN\>"(或者'\<PATTERN\>'):词首词尾锚定符
.:用于匹配任意单个字符
例:grep --color=auto r....t rc.sysinit
搜索以r开头,中间有4个字符,t结尾的
*:匹配此前的字符0到任意次
.*:匹配任意长度的任意字符(默认情况下,工作在贪婪模式下(尽可能长的匹配符合模式的字符串))
?:匹配此前的字符0或1次
PATTERN\{m,n\}:匹配此前字符至少m次,至多n次
例:\{0,5\} 至少0次,至多5次
例:\{5,\} 至少5次
例:\{5\} 匹配5次