• grep全称是(Global Regular Expression Print)是一种强大的文本搜索工具,根据用户指定模式逐行搜索

    主要选项如下:

    --color=auto:高亮显示匹配内容

    -v:反向显示,只显示不包含匹配文本的所有行

    -o:不显示匹配行只显示匹配内容

    -i:忽略大小写

    -E:支持扩展正则表达式

    -n:显示匹配行及 行号

    -An:显示匹配行和以下n行

    -Bn:显示匹配行和以上n行

    -Cn:显示前后各n行


  • 文件通配符
    符号备注举例说明
    *任意长度的任意字符ls -d /etc/*查看etc下所有文件和目录
    任意单个字符ls -d /etc/p?i查看etc下p开头i结尾中间包含任意单个字符的文件和目录
    []指定范围类的单个字符ls -d /etc/p[pk]p查看etc下p开头p结尾中间只包含p或k的文件和目录
    [^]指定范围外的单个字符ls -d /etc/p[^a-z]p查看etc下p开头p结尾中间不包含字母的文件和目录
    [:space:]空白字符grep "^#[[:space:]]*$" /etc/inittab查找出以#开头中间包含任意空白符的行,
    [:punct:] 标点符号

    [:lower:]小写字母

    [:upper:]大写字母

    [:digit:]数字

    [:alnum:]所有字母和数字

    [:alpha:]所有字母

    正则表达式
    .任意单个字符

    []指定范围内的任意单个字符

    [^]指定范围外的单个字符

    *前一字符出现的任意长

    ?前一字符出现的0次或1次

    \{m\}前一字符出现最少m数

    \{m,\}前一字符出现最少m数,到多次

    \{m,n\}前一字符出现最少m次,最多n次

    .*任意长度任意字符

    ^行首锚定

    $行尾锚定

    ^$或者^[[:space:]]$表示空白行

    \<词首锚定

    \>词尾锚定

    \(\)分组符号 grep  "\(by\) " /etc/inittab

    \n引用第n个分组括号内容。

    扩展正则表达式
    ?{}()无需转义,词首词尾还需转义

    +表示前一字符至少出现一次

    | 或