• 【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:替换当前行
        在这里插入图片描述注意:在插入文本时,文本不能加双引号,即便是文本中间有空格也不需要。

             👆回到顶部👆

    在这里插入图片描述

  • 相关阅读:
    mac系统占用内存太大怎么办?
    甲硝唑修饰二硫化钨MoS2/二硒化钨WSe2/碲化钨WTe2/二氧化锰MnO2/四氧化三铁Fe3O4/二氧化硅SiO2/二氧化钛TIO2纳米粒
    【AGC】开放式测试示例
    分布式计算模型Mapreduce实践与原理剖析(一)
    (二十三)大数据实战——Flume数据采集之采集数据聚合案例实战
    Vue 安装 vue的基本使用 vue的初步使用步骤
    gpt-4o看图说话-根据图片回答问题
    Java数据结构与算法学习笔记
    Typescript-01
    软件设计师(十)网络与信息安全基础知识
  • 原文地址:https://blog.csdn.net/qq_41890240/article/details/126452401