• Shell脚本grep命令


    三剑客:grep  sed  awk

      grep:文本行过滤工具

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

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

    grep包含三个命令:

      grep egrep fgrep 。他们是用来进行行模式匹配的

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

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

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

    grep的用法:

      grep [option] …PATTERN [filename]

    grep的常用选项:

    -E

    支持使用扩展正则表达式

    -P

    使用perl语言的正则表达式引擎进行搜索(每一种语言的)

    -I

    忽略大小写

    -o

    仅仅输出匹配的内容(默认输出的是行)

    -v

    进行反选

    --color=auto

    语法着色

    -n

    显示行号

    pattern--正则表达式:  

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

      1.字符匹配:

        . 任意一个字符 ?

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

        [^]范围外的任意一个字符

        字符类:[:digit:]  [:alnum:]  [:alpha:]  [:lower:] [:upper:] [:space:] [:punct:]

      2.次数匹配

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

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

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

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

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

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

        {m,}  匹配前面的字符至少m次

      3.位置锚定

        ^  锚定行首

        $  锚定行尾

         锚定词首和锚定词尾

        >  锚定词尾

        < 锚定词首

      4.分组

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

        ()  示例:(abc)*  abcabcabc  abcccc

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

        (((2(5[0-5]|[0-4]d))|[0-1]?d{1,2})(.((2(5[0-5]|[0-4]d))|[0-1]?d{1,2})){3})

  • 相关阅读:
    I/O多路复用
    Django重点之url别名
    10 个常用的 Linux 命令?
    软连接和硬链接的区别?
    Linux 重定向命令有哪些?有什么区别?
    在 linux 中 find 和 grep 的区别??
    Django中用 form 实现登录注册
    你所遵循的PEP8代码规范是什么?请举例说明其要求?
    什么是 Python 的命名空间?
    ELK+Kafka日志收集环境搭建
  • 原文地址:https://www.cnblogs.com/shy13138/p/11363812.html
Copyright © 2020-2023  润新知