Linux正则表达式grep笔记

来源:互联网 发布:千月蓝牙软件 编辑:程序博客网 时间:2024/05/16 10:14

Linux正则表达式grep笔记

grep命令简介:

grep 全名 Global Regular Expression Print

正则表达式:Regular Expression, RegExp

grep : 使用基本正则表达式定义的模式来过滤文本的命令:

           - i 忽略大小写
           -v 反向匹配
           -o 只显示匹配的字符串

          --color 高亮显示匹配字符串
          -E 支持扩展的正则表达式

          -A # (after)匹配以后,它下面的多少行也显示

          -B # (before)前面的

          -C # (context) 前后都显示

普通正则表达式:

  1. 元字符:

    : 匹配任意单个字符
    [] : 匹配指定范围内的任意单个字符
    [^] : 匹配指定范围外的任意单个字符
    字符集合:数字 [:digit:], 小写字母 [:lower:], 大写字母[:upper:], 符号 [:punct:], 空白 [:space:], 字母 [:alpha:], 字母数字 [:alnum:]
  2. 匹配次数:

    正则表达式默认匹配贪婪模式
    *   : 匹配其前面字符任意次
    .*  : 匹配任意长度的任意字符
    \? : 匹配其前面的字符1次或0次
    \{m, n\} : 匹配其前面的字符至少m次,至多n次

    位置锚定:

  3. ^  : 锚定行首,此字符后面的任意内容必须出现在行首
    $  : 锚定行尾,此字符前面的任意内容必须出现在行尾
    ^$: 匹配空白行
    <\ or \b : 锚定词首,其后面的任意字符必须作为单词的首部出现
    \> or \b:锚定词尾,其前面的字符必须作为单词的尾部出现
    例子: \<root\> = \broot\b 匹配root这个单词

  4. 分组:

    \( \) 把括号内的内容当做一个整体
    后向引用: \1 表示第一左括号及与之对应的有括号所包括的所有内容。
    例子:
    He love his lover
    She like his liker
    He love his liker
    grep '\(l..e\).*\1r' test.txt --color

扩展的正则表达式:

egrep = grep -E

  1. 元字符:同普通正则表达式

  2. 匹配次数:

    不需要再使用反斜线"\"

    增加内容

    +:匹配其前面的字符至少一次

  3. 锚定字符:同普通正则表达式

  4. 分组:

    ():无需加反斜线

         |  : or


老是记不住,还是用的少。特此做下记录,以备查阅。



原创粉丝点击