1.grep中的位置锚定,用于指定字符出现的位置
    ^ 锚定行首,^char
    
    $ 锚定行尾,char$
    
    ^$ 空白行
    
    \<char 锚定词首=\bchar
    
    char\> 锚定词尾=char\b
    
    grep分组
    \( \ )
    \(ab\)*xy  表示ab出现任意次,包括0次
    
    grep引用
        \1 后向引用,引用前面的第一个左括号以及与之对应的右括号中的模式所匹配的内容。
        \2
        ...
        \(a.b\)xy\1  eg: abbxyabb
        

2.grep常用选项
    -v:显示不能被模式匹配到的行
    -o:仅显示被模式匹配到的字符串而非×××
    -i:不区分大小写
    -E:支持扩展的正则表达式
    -A:
    -B:
    -C:
    
    
3.egrep 相当于grep -E
    使用扩展正则表达式来构建模式相当于grep -E
        . 任意单个字符
        [ ] 指定范围内任意单个字符 
        [^] 指定范围外任意单个字符
    
    匹配次数
        *
        ?
        +:匹配前面字符至少一次
        {m} 匹配前面字符m次
        {m,n} 匹配前面字符至少m次,至多n次
        {m,} 匹配前面字符至少m次
        {0,n} 匹配前面字符至多n次
        
     egrep中位置锚定
         ^ 行首
         $ 行尾
         \< = \b 锚定词首
         \> = \b 锚定词尾
         
     egrep分组 
         () 分组
           |  或者
           
4.fgrep : fast 不解析正则表达式

5.bash编程条件判断
    条件判断的常用判断类型
        整数测试
        文件测试
        字符测试
        
        $?
            0    表示测试正确
            1-255    表示错误
            
        布尔值 (真、假)
        逻辑运算
            与
            或
            非     
            
6.bash测试
    test EXPRESSION    
        [EXPRESSION]
        `EXPRESSTION`
        
7.bash中条件判断使用if
    单分支
        if 条件; then
            分支1 ;
        fi
        
    双分支
        if 条件; then
            分支1 ;
        else
            分支2 ;
        fi
             
     多分支
         if 条件; then
             分支1 ;
         elif
             分支2 ;
         elif
             分支3 ;
         ...
         else
             分支n ;
         fi