一、grep命令
grep: 根据模式搜索文本,并将符合模式的文本行显示出来
模式: 由文本字符和正则表达式的元字符组合成的匹配条件
命令格式: grep [options] [file...]
      
        
          [root@hao log]#
        
      
      
        grep
      
      
        '
      
      
        root
      
      
        '
      
       /etc/
      
        passwd
      
      
        
root:x:
      
      
        0
      
      :
      
        0
      
      :root:/root:/bin/
      
        bash
operator:x:
      
      
        11
      
      :
      
        0
      
      :operator:/root:/sbin/nologin
    
  命令选项:
-i(ignore case):忽略字符大小写
--color[=when]:高亮显示匹配字符,常用因此使用命令别名以便方便使用
      
        
          root@hao ~]#
        
      
      
        grep
      
       --color 
      
        '
      
      
        root
      
      
        '
      
       /etc/
      
        passwd
      
      
        
root:x:
      
      
        0
      
      :
      
        0
      
      :root:/root:/bin/
      
        bash
operator:x:
      
      
        11
      
      :
      
        0
      
      :operator:/root:/sbin/
      
        nologin
        
          
            [root@hao 
          
        
      
      
        
          ~]#
        
      
       alias 
      
        '
      
      
        grep=grep --color
      
      
        '
      
      
        
[root@hao 
      
      ~]# 
      
        grep
      
      
        '
      
      
        root
      
      
        '
      
       /etc/
      
        passwd
      
      
        
root:x:
      
      
        0
      
      :
      
        0
      
      :root:/root:/bin/
      
        bash
operator:x:
      
      
        11
      
      :
      
        0
      
      :operator:/root:/sbin/nologin
    
  -v:显示没有被模式匹配到的行
-A n:表示匹配行后n行也显示
-B n:表示匹配行前n行也显示
-C n:表示匹配行前后n行都显示
-o:只显示被模式匹配到的字符串
      
        
          [root@hao ~]#
        
      
      
        grep
      
       -o 
      
        '
      
      
        root
      
      
        '
      
       /etc/
      
        passwd
      
      
        
root
root
root
root
      
    
  
    
      
        二、基本正则表达式元字符                                                  
      
      
    
  
首先创建测试文件
      
        
          [root@hao ~]#
        
      
      
        cat
      
       /tmp/test.txt 
      
      a 
      
      b 
      
      ab 
      
      aab 
      
      acb 
      
      adb 
      
      amnb 
      
      amnbmnbmnb 
    
  元字符:
. : 匹配任意单个字符
    
      
    
  
    
      
         * 
      
       :匹配其前面的字符任意次
      
    
  
    
      
    
  
.* : 匹配任意长度的任意字符
    
      
    
  
\ ? :匹配其前面的字符1次或零次
    
      
    
  
\{m,n\} :匹配其前面的字符至少m次,至多n次。下面为a出现至少一次,之多三次之后是b
    
      
    
  
    
  
^ : 锚定行首,此字符后面的任意内容都必须出现在行首
    
      
    
  
$ :锚定行尾,此字符前面的任意内容必须出现在行尾
    
      
    
  
^$ :空白行
\< :其后面的任意字符必须作为单词首部出现
\> :其前面的任意字符必须作为单词的尾部出现
    
      
    
  
[] :匹配指定范围内的单个字符
[^] :匹配指定范围外的任意单个字符
[:digit:] [:lower:][:upper:][:punct:][:space:][:alpha:][:alnum:]: 字符集合
以数字结尾的行:
    
      
    
  
\(\): 分组。如下代码匹配ab组合出现任意次。
    
      
    
  
分组主要目的是为了后向引用,也就是被括号括起来的内容,在以后再次引用。\1代表引用前面出现第一个小括号的内容。
    
      
    
  
三、扩展正则表达式元字符 (grep -E=egrep)
元字符与上面相同的是
- .
- 
      
        
          [] 
          
 
- 
      
        
          [^] 
          
 
- 
      
        * 
        
 
- ?没有反斜线
- {m,n} 没有反斜线
- ^
- $
- 
      
        
          
            ^$ 
            
 
- 
      
        
          
            
              \< 
              
 
- \>
- ()没有反斜线
不同的是:
+:匹配其前面的字符至少一次
    
      
          |:或者or的意思。C|cat的意思是C或者cat。(C|c)at代表Cat或者cat。以至少一个空白字符开头的行:
        
      
    
  
    
      
        
      
    
  


 
					 
					