• Shell基本语法---处理海量数据的grep命令


     grep命令

    • shell脚本三剑客之一
    • grep应用场景:通常对数据进行 行的提取

    • 语法:grep [选项] [内容] [file]

      • -v 对内容进行取反提取

      • -n 对提取的内容显示行号

      • -w 精确匹配

      • -i 忽略大小写

      • ^ 匹配开头行首

      • -E 正则匹配

    • 正则语法

    正则表达式 描述 例子
    转义符,将特殊字符进行转义,忽略其特殊意义 a.b匹配a.b,但不能匹配ajb,.被转义为特殊意义
    ^ 匹配行首,^则是匹配字符串的开始 ^tux匹配以tux开头的行
    $ 匹配行尾,$则是匹配字符串的结尾 tux$匹配以tux结尾的行
    . 匹配除换行符 之外的任意单个字符 ab.匹配abc或bad,不可匹配abcd或abde,只能匹配单字符
    [] 匹配包含在[字符]之中的任意一个字符 coo[kl]可以匹配cook或cool
    [^] 匹配字符之外的任意一个字符 12345不可以匹配1234或1235,1236、1237都可以
    [-] 配[]中指定范围内的任意一个字符,要写成递增 [0-9]可以匹配1、2或3等其中任意一个数字
    ? 匹配之前的项1次或者0次 olou?r可以匹配color或者colour,不能匹配colouur
    + 匹配之前的项1次或者多次 sa-6+匹配sa-6、sa-666,不能匹配sa-
    * 匹配之前的项0次或者多次 co*l匹配cl、col、cool、coool等
    () 匹配表达式,创建一个用于匹配的子串 ma(tri)?匹配max或maxtrix
    {n} 匹配之前的项n次,n是可以为0的正整数 [0-9]{3}匹配任意一个三位数,可以扩展为0-9[0-9]
    {n,} 之前的项至少需要匹配n次 [0-9]{2,}匹配任意一个两位数或更多位数
    {n,m} 指定之前的项至少匹配n次,最多匹配m次,n<=m [0-9]{2,5}匹配从两位数到五位数之间的任意一个数字
    | 交替匹配|两边的任意一项 ab(c|d)匹配abc或abd
    • 常用规则
    描述
    .* 所有字符
    [a-z] 小写字母
    [A-Z] 大写字母
    [a-Z] 小写和大写字母
    [0-9] 数字
    • 常用用法之一
    grep "xxx" -r dir  #查找指定目录下包含指定内容的文件
  • 相关阅读:
    第三周星期三
    第三周星期二
    导入oc动态库(framework)到C++项目中混编出现的问题
    webrtc项目编译报错(image not found)
    OpenGL-综合案例:旋转的大小球
    使用OpenGL来画个甜甜圈
    OpenGL-深度测试和颜色混合
    OpenGL 绘制正方形的基本步骤
    数据结构与算法-基础
    关于iOS离屏渲染的深入研究
  • 原文地址:https://www.cnblogs.com/chusiyong/p/11273856.html
Copyright © 2020-2023  润新知