zoukankan      html  css  js  c++  java
  • Grep学习笔记

    Grep(Global search Regular Expression and Print out the line)是一种强大的文本搜索工具。

    1. 正则表达式的基本组成部分

    正则表达式 描述
    ^ 行首标记
    $ 行尾标记
    . 任意一个字符
    [] 包含在[]中的任意一个字符
    [^] 不包含在[]中的任意一个字符
    [-] []指定范围内的任意一个字符
    ? 匹配之前的字符1次或0次
    + 匹配之前的字符1次或多次
    * 匹配之前的字符0次或多次
    () 创建一个用于匹配的字符串
    {n} 匹配之前的项n次
    {n,}

    匹配之前的项至少n次

    {n,m} 匹配之前的项n-m次
    | 匹配|两边的任意一项
    对之前的字符进行转义,不转义则代表字符本身

    2. POSIX字符类相当于是某些字符的集合。

    POSIX字符类 描述
    [:alnum:] 字母与数字字符
    [:alpha:] 字母字符(包括大小写)
    [:blank:] 空格与制表符
    [:digit:] 数字字符
    [:lower:] 小写字母字符
    [:upper:] 大写字母字符
    [:punct:] 标点符号
    [:space:] 所有空白字符(包含换行,回车等)

      在使用POSIX字符类时,要用[]括起来,比如,要匹配三个数字,则可以写成[[:digit:]]{3}

    3. 元字符是perl风格的正则表达式。

    正则表达式 描述
     单词边界
    B 非单词边界
    d 单个数字字符
    D 单个非数字字符
    w 单个单词字符(字母,数字,和_)
    W 单个非单词字符
    换行符
    s 单个空白字符
    S 单个非空白字符
    回车

    4. 常用命令选项

      -e或者-E  使用egrep(目测mac的grep默认就是egrep?,待验证), 匹配多个正则表达式: grep -e 'pattern1' -e 'pattern2', 只要匹配其中的一个正则表达式就可以, 如果要同时匹配两个正则表达式, 可以使用grep -e 'pattern1' file | grep -e 'pattern2'

      -o 只输出匹配部分

      --color  重点标记匹配部分

      -v 只输出不匹配的行

      -c 统计匹配的行的个数, 如果想统计匹配的字段数, 可以用grep 'pattern' -o | wc -l

      -n 打印出匹配的行数(第几行)

      -b 打印匹配部分的字节或字符偏移, 可以与-o搭配使用

      -l 当grep多个文件时, 显示包含匹配项的文件名

      -L 当grep多个文件时,显示不包含匹配项的文件名

      -R 在目录中递归搜索文件, 可以查找哪些文本出现在哪些源代码文件中

      -i 忽略大小写

      -q 静默模式, 不会向标准输出打印任何输出, 仅仅执行命令, 根据命令执行成功与否返回退出状态

      -A n 返回匹配行及其之后的n行, A目测是After的意思

      -B n 返回匹配行及其之前的n行, B目测是Before的意思

      -C n 返回匹配行及其之前和之后的n行, C目测是context的意思

  • 相关阅读:
    【MyBatis】学习笔记010--#{}与¥{}的区别
    【MyBatis】学习笔记009--基于注解的CRUD
    【MySQL】limit语法
    【MyBatis】学习笔记008--分页查询
    【MyBatis】学习笔记007--日志工厂
    【MyBatis】学习笔记006--resultMap简单结果映射
    【MyBatis】学习笔记005--生命周期与作用域
    【MyBatis】学习笔记004--XML配置
    重学动态规划
    剑指 Offer 09. 用两个栈实现队列
  • 原文地址:https://www.cnblogs.com/kemaswill/p/3251456.html
Copyright © 2011-2022 走看看