grep正则表达式

eroshn 2020-01-31

grep正则表达式
因为文本查找的需要
    grep  egrep fgrep
    grep:根据模式,搜素文本,并将符合模式的文本行显示出来
    pattern:文本字符和正则表达式元字符组合而成的模式
    grep [OPTIONS] PATTERN [FILE...]
       例  grep ‘root‘ /etc/passwd
         -i, --ignore-case  忽略大小写
         --color  用颜色表示查找到的
         -v  显示不被模式匹配到的行
         -o  只显示被模式匹配到的字符串
         -E  使用扩展正则表达式
    正则表达式:Regular EXPression,REGEXP
    元字符:(意义同globbing不同)
        .:匹配任意单个字符
        *:匹配前面字符任意次数
        .*:匹配任意长度任意字符
        \?:匹配其前面字符1次或0次,需用转义符\
        \{m,n\}:匹配其前面字符至少m次,至多n次
            \{1,\}至少1次
            \{0,3\}至多3次
        位置锚定:
            ^:锚定行首,此字符后面任意字符必须出现在行首
            $:锚定行尾,此字符前面任意字符必须出现在行尾
            ^$:表示空白行
            []:匹配指定范围内的任意单个字符,包括字符集合
            [^]:匹配指定范围外的任意单个字符
            字符集合:   [:digit:]  [:lower:] [:upper:] [:punct:] [:space :] [:alpha:] [alnum:]
            \< 或\b:锚定词首,其后面的任意字符必须作为单词首部出现
            \> 或\b:锚定词尾,其前面的任意字符必须作为单词尾部出现
        分组:
            \(\)
                  \(ab\)*
            后项引用
               \1:第一个左括号以及与之对应的右括号所包括的所有内容
               \2:第二个左括号以及与之对应的右括号所包括的所有内容
               \3:第三个左括号以及与之对应的右括号所包括的所有内容
                       grep ‘\([0-9]\)\1.*‘ num
正则表达式:
    grep:基本正则表达式
    grep -E :扩展正则表达式
         -A # :
         -B #:
         -C #
               grep -A 2 ‘core id‘ /proc/cpuinfo
               grep -B 2 ‘core id‘ /proc/cpuinfo
               grep -c 2 ‘core id‘ /proc/cpuinfo
         默认情况下工作在贪婪模式下
    扩展正则表达式
        字符匹配
        .
        []
        [^]
        次数匹配
        *
        ?
        +:,匹配其前面字符至少1次
            grep -E --color ‘^[[:space:]]+‘ /boot/grub/grub.conf
        {m,n} 不再使用\
        位置锚定:
        ^
        $
        \<
        \>
        分组:
        ()
        \1,\2,\3,...
            grep -E --color ‘(C|c)at‘  test.txt
        或者
        | :or
    egrep=grep -E
            找出/boot/grub/grub.conf文件中1-255之间的数字,注:锚定的是单词
            egrep --color ‘\<[1-9]|[1-9]|1[0-9][0-9]|2[0-4]|25[0-5]\>‘ /boot/grub/grub.conf
            egrep --color ‘\<([1-9]|[1-9]|1[0-9][0-9]|2[0-4]|25[0-5])\>‘ /boot/grub/grub.conf
            显示所有以数字结尾且文件名中不包含空

相关推荐