• 【Shell篇<Ⅳ>】——正则表达式、三剑客之sed流式编辑器


    让我们进入今天的学习吧!
    💪Keep  trying💪

    在这里插入图片描述

    一、正则表达式

    1.1 egrep命令

    • grep 和 egrep作用相似,egrep 等同于 grep -E,就是支持了扩展正则表达式
    • 常用的选项
      • -i:忽略大小写
      • -v:对结果取反
      • -c:统计匹配的行数
      • -q:静默,无任何输出,通常配合$?进行检测
        效果类似于正常的egrep操作添加了&> /dev/null来屏蔽输出。在脚本中当需要检测文本内是否存在指定的关键词时,可以利用egrep -q的返回状态值来作为判断依据,从而简化&>输出的操作。
      • -n:显示匹配结果行号
      • --color:标红匹配字段

    1.2 正则表达式

    • 基本正则表
      在这里插入图片描述

    • 拓展正则表
      在这里插入图片描述
      补充两个:
      {n}:匹配前一个字符n次
      {n, }:匹配1前一个字符n次及以上
      注意:\b 的位置不能出现数字字符下划线和符号
      拓展正则表是对基本正则表中后四个的优化。

    • 常用正则

      • .*:代表通配符,匹配所有,包括空行,而 . 不能匹配空行
      • ^$:代表匹配空行
    • 案例
      匹配11位手机号

    15940401491
    1589562
    13872375901
    13177029023
    1358954
    abd152dwqewq
    159saesa256
    [root@shell ~]# egrep '^[0-9]{11}\b' num
    15940401491
    13872375901
    13177029023
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12

    二、sed 流式编辑器

    • 特点:可以对文档进行非交互式的增删改查逐行进行处理

    • 使用格式:sed 选项 '条件 指令' 文档
      这里的条件也叫做定址符(执行指令的条件)控制sed需要处理文本的范围;不加定址符则逐行处理所有行
      注意:条件和指令之间可以空格,也可不空格

    • 常用选项

      • -n:屏蔽默认(原始)输出(sed默认会将原始文本和变动文本都输出)
      • -i:修改文件内容(不加时可用作测试)
      • -r:启用扩展正则,若与其他选项一起用,则应写到第一个
    • 条件(定址符):可以使用数字当做行号或者正则表达式,使用正则的话需要将正则表达式用 / / 括起来
      在这里插入图片描述
      输出以root开头的行。

    • 常用指令

      • p:打印行

        • !p:对输出取反(同样适用于d指令)
        • $p:最后一行(同样适用于d指令)
        • 常用案例在这里插入图片描述
        • 补充案例
          • 获取奇数行: sed -n ‘1~2p’
          • 获取奇数行: sed -n ‘2~2p’
          • 解释定址符 a~b 的用法
            a~b代表:从第a行开始,每b行打印一次
      • d:删除行

        • 常用案例
          在这里插入图片描述
      • s:字符串替换

        • 常用案例
          在这里插入图片描述
      • =:输出行号
        有一个用处,获取最后一行的行号,$= 就是最后一行的行号
        在这里插入图片描述

    • 补充指令(对文本块的处理)

      • i:行前插入文本
      • a:行后插入文本
      • c:替换当前行
        在这里插入图片描述注意:在插入文本时,文本不能加双引号,即便是文本中间有空格也不需要。

             👆回到顶部👆

    在这里插入图片描述

  • 相关阅读:
    神经网络 样本不平衡,神经网络结果不稳定
    Python-类
    宝宝洗衣机买什么样的好?诚意推荐四款实力超群的婴儿洗衣机
    Java-I/O输入输出
    Qt5开发从入门到精通——第五篇四节( 文本编辑器 Easy Word 开发 V1.3详解 )
    从网页地址栏输入网址到页面渲染的整体流程
    idea傻瓜式快速搭建springboot框架
    【C++】解引用 (及指针) 和 引用 的概念区别
    Spring Boot 2020 官方基础68课程第24个Spring Boot and OAuth2
    HPA (Horizontal Pod Autoscaler) In K8s
  • 原文地址:https://blog.csdn.net/qq_41890240/article/details/126452401