zoukankan      html  css  js  c++  java
  • 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  #查找指定目录下包含指定内容的文件
  • 相关阅读:
    线性表之链式存储结构
    最大公约数:辗转相除法
    字符串系列之:逆序输出字符串
    链表有关的常见面试题
    从数组中找出最大的和最小的数
    C语言实现简单线程池
    线性表之顺序存储结构
    新学了姜葱豆腐
    渗透1
    MySQL注入中新Tips
  • 原文地址:https://www.cnblogs.com/chusiyong/p/11273856.html
Copyright © 2011-2022 走看看