grep



用途:根据模式搜索文本,将符合的文本所在行输出;

用法:

    grep [options] PATTERN [FILE...]

    PATTERN:模式,即匹配条件,包含文本字符及正则表达式

    [options]

        -i:-ignore-case,忽略大小写;

        --color:将匹配字符使用颜色高亮显示;

        -v:反向查找,显示不匹配模式的行;

        -o:只显示匹配的字符串;


grep -A 2 'processor' /proc/cpuinfo


grep -B 2 'processor' /proc/cpuinfo


[root@server1 ~]# grep -C 2 'cpu family' /proc/cpuinfo

processor: 0

vendor_id: GenuineIntel

cpu family: 6

model: 60

model name: Intel(R) Core(TM) i5-4200M CPU @ 2.50GHz


通配符:

    *:任意长度的任意字符;

    ?:任意单个字符

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

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


正则表达式(Regular Expression)

    其中包含一些元字符,元字符不表示字符本身的含义,而是表示此字符通配的含义。

    默认情况下,正则表达式工作在贪婪模式下,即匹配最大长度。


    .:任意单个字符;

    *:匹配其前面的字符任意次;

    .*:任意长度的任意字符;

    ?:匹配其前面的字符0次或1次;

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

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

    [:digit:]:数字;

    [:lower:]:小写字母;

    [:upper:]:大写字母;

    [:punct:]:标点符号;

    [:space:]:空白字符;

    [:alpha:]:所有字母;

    [:alnum:]:所有数字及字母;



    定义次数    

    \{m,n\}:匹配其前面的字符,至少m次,至多n次;

         \{1,\}:至少1次;

         \{0,3\}:最多3次


    定义位置:

    ^:此字符后面的任意内容必须出现在行首;

         grep '^r..t' /etc/passwd

    $:此字符前面的任意内容必须出现在行尾;

         grep 'b..h$' /etc/passwd

         grep '[[:digit:]]$' /etc/inittab       #以数字结尾的行

    ^$:空白行

    \<或\b:锚定其后面的任意字符必须作为单词首部出现;

    \>或\b:锚定其前面的任意字符必须作为单词尾部出现;


    分组

    \(ab\)*:ab为一组,匹配其出现0次或1次



扩展正则表达式:

扩展正则表达式中不需要使用逃逸字符


字符匹配

    .:任意单个字符;

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

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


次数匹配

*:其前字符任意次

?:其前字符0次或1 次

+:其前字符至少1次

{m,n}:至少m次,至多n次。


位置匹配

    ^:此字符后面的任意内容必须出现在行首;

         grep '^r..t' /etc/passwd

    $:此字符前面的任意内容必须出现在行尾;

         grep 'b..h$' /etc/passwd

         grep '[[:digit:]]$' /etc/inittab       #以数字结尾的行

    ^$:空白行

    \<或\b:锚定其后面的任意字符必须作为单词首部出现;

    \>或\b:锚定其前面的任意字符必须作为单词尾部出现;






转载于:https://blog.51cto.com/tanbofan/1367870