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

文章目录

  • 一、正则表达式
    • 1.1 egrep命令
    • 1.2 正则表达式
  • 二、sed 流式编辑器

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

在这里插入图片描述

一、正则表达式

1.1 egrep命令

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

1.2 正则表达式

  • 基本正则表
    【Shell篇<Ⅳ>】——正则表达式、三剑客之sed流式编辑器_第1张图片

  • 拓展正则表
    【Shell篇<Ⅳ>】——正则表达式、三剑客之sed流式编辑器_第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:启用扩展正则,若与其他选项一起用,则应写到第一个
  • 条件(定址符):可以使用数字当做行号或者正则表达式,使用正则的话需要将正则表达式用 / / 括起来
    【Shell篇<Ⅳ>】——正则表达式、三剑客之sed流式编辑器_第3张图片
    输出以root开头的行。

  • 常用指令

    • p:打印行

      • !p:对输出取反(同样适用于d指令)
      • $p:最后一行(同样适用于d指令)
      • 常用案例【Shell篇<Ⅳ>】——正则表达式、三剑客之sed流式编辑器_第4张图片
      • 补充案例
        • 获取奇数行: sed -n ‘1~2p’
        • 获取奇数行: sed -n ‘2~2p’
        • 解释定址符 a~b 的用法
          a~b代表:从第a行开始,每b行打印一次
    • d:删除行

      • 常用案例
        【Shell篇<Ⅳ>】——正则表达式、三剑客之sed流式编辑器_第5张图片
    • s:字符串替换

      • 常用案例
        【Shell篇<Ⅳ>】——正则表达式、三剑客之sed流式编辑器_第6张图片
    • =:输出行号
      有一个用处,获取最后一行的行号,$= 就是最后一行的行号
      【Shell篇<Ⅳ>】——正则表达式、三剑客之sed流式编辑器_第7张图片

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

    • i:行前插入文本
    • a:行后插入文本
    • c:替换当前行
      【Shell篇<Ⅳ>】——正则表达式、三剑客之sed流式编辑器_第8张图片注意:在插入文本时,文本不能加双引号,即便是文本中间有空格也不需要。

         回到顶部

在这里插入图片描述

你可能感兴趣的:(云计算,正则表达式,编辑器,shell,sed)