一、何为正则表达式?

     正则表达式就是用某种模式去匹配一类字符串的一个公式。

正则表达式可以分为:

1.基本正则表达式:grep

2.扩展正则表达式:egrep

3.不搜索正则表达式:fgrep

二、正则表达式对于系统管理员的用途

对于系统管理员来说,正则表达式是一个“不可不学的好东西”。由于系统在繁忙的情况之下,每天产生的信息会多到你无法想象的地步,而我们也都知道,系统的“错误信息登录文件”的内容记载了系统产生的所有信息,当然,这包含你的系统是否被“***”的纪录数据。但是系统的数据量太大了,要系统管理员的你每天去看这么多的信息数据,想不疯掉都很难,这个时候,我们就可以透过正则表达式的功能,将这些登录的信息进行处理,仅取出“错误”的信息来进行分析。

三、grep

1.语法:[root @test /root ]# grep [options] PATTERN FILE1,...

2.参数说明:

 

 

 

 

-a :将二进制文件以 文本文件的方式搜寻数据

 

-c :计算找到 '搜寻字符串' 的次数
 
-i :忽略大小写的不同,所以大小写视为相同
  
-n :顺便输出行号
  
-v :反向选择,亦即显示出没有 '搜寻字符串' 内容的那一行!
 
-r :递归搜索每一个文件
 
-A :显示所在行的前面的行
 
-B :显示所在行的后面的行
 
-C :显示所在行的前后面的行
 
-o :只显示被模式匹配到的字符本身,而非字符所在的行
 
例:

[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次

[ ]:匹配指定范围内的任意单个字符
 
[^]:匹配指定范围外的任意单个字符