• 4、grep与正则表达式


    1、grep程序

      Linux下有文本处理三剑客  --  grep sed awk

      grep:文本 行过滤工具(一行一行进行匹配)

      sed:文本 行编辑器(一行一行编辑)

      awk:报告生成器,做输出格式化

      grep

        包含三个命令:grep egrep fgrep,它们是用来进行 行模式(pattern)匹配的

        egrep = grep -E   --  使用扩展的正则表达式进行匹配

        fgrep = fast grep  --  只使用文件通配符进行匹配

        grep默认使用正则表达式进行文本匹配

      

      grep的用法:

        grep [option] ... PATTERN [filename] 

        a*  --  以a开头的所有文件

      grep的常见选项  --  option

        -E 支持使用扩展的正则表达式

        -P 使用perl语言的正则表达式引擎进行搜索(每一种语言的正则表达式引擎都不相同,甚至sed grep awk使用的regexp引擎都是不同的)

        -i 忽略大小写

        -v 进行反选

        -o 仅仅输出匹配的内容

        --color=auto 语法着色

        -n 显示行号

        -w 匹配固定单词

      PATTERN -- 正则表达式

        作用:通过一些特殊字符,来表示一类字符内容,然后交给前面的命令来执行;如果使用特殊字符本身含义,就需要进行转义

        回顾:文件通配符

          * ?任意单个字符 []范围内的任意一个字符 [^]取反

        1.字符匹配

          . 任意一个字符 (相当于文件通配符的?)

          [] 范围内的任意一个字符

          [^] 取反

          字符类:数字[:digit:] 字母和数字[:alnum:] 字母[:alpha:] 大写[:upper:] 小写[:lower:] 特殊字符[:punct:] 空白字符[:space:]

        2.次数匹配

          * 匹配前面紧挨着的字符0次到n次

          ?匹配前面紧挨着的字符0次到1次

          + 匹配前面紧挨着的字符1次到n次

          {m}匹配前面的字符m次

          {m,n} 匹配前面的字符m到n次

          {0,n} 匹配前面的字符0到n次

          {m,} 匹配前面的字符m到无数次

            [0-2][]

        3.位置锚定

          ^ 锚定行首

          $ 锚定行尾

           锚定单词词首和锚定词尾(用在单词前面就是锚定词首,用在后面就是锚定词尾)

          > 锚定词尾

          < 锚定词首

        4.分组

          abc* abcccc abc我们要看成一个整体

          () 示例:(abc)* abcabcabc

          **分组特性:默认情况下。linux系统会为分组制定变量,变量的表示形式为123......

          (ab+(xy)*) 其中1 = ab+(xy)*, 2 = xy

        扩展正则表达式:

          【标准正则表达式中的都可以去掉】

          分组:()后向引用123

          或 : |

            示例:grep -E "()

    练习:

    1、显示/proc/meminfo文件种大小s开头的行

      grep -i "^s" /proc/meminfo

    2、显示

    0-255.0-255.0-255.0-255

  • 相关阅读:
    项目实战:Qt+Android模拟操作器(模拟操作app,打开,点击,输入,获取验证码等等)
    项目实战:流水线图像显示控件(列刷新、1ms一次、缩放、拽拖、拽拖预览、性能优化、支持OpenGL GPU加速)
    OpenCV开发笔记(七十三):红胖子8分钟带你使用opencv+dnn+yolov3识别物体
    Oracle数据库由dataguard备库引起的log file sync等待
    使用udev高效、动态的管理Linux设备文件
    Linux配置和管理设备映射多路径multipath
    ELK6环境搭建
    存储系列1-openfiler开源存储管理平台实践
    redhat / centos开启关闭防火墙
    教你如何使用github+jsDelivr搭建免费图床
  • 原文地址:https://www.cnblogs.com/lyali/p/11350785.html
Copyright © 2020-2023  润新知