【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

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

         👆回到顶部👆

在这里插入图片描述

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小猿桥

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值