目录

引言

1、sed的工作原理

2、sed命令参数

3、常用操作

3.1、打印第3行内容

3.2、打印4-6行​编辑

3.3、以奇数进行打印​编辑

3.4、以偶数进行打印

3.5、从12行往后以偶数进行打印

3.6、替换字符

4、迁移符合条件的文本

5、使用脚本编辑文件

总结


引言

sed(Stream EDitor)是一个强大而简单的文本解析转换工具,可以读取文本,并根据指定的条件对文本内容进行编辑(删除、替换、添加、移动等),最后输出所有行或者仅输出处理的某些行。sed也可以在无交互的情况下实现相当复杂的文本处理操作,被广泛应用于Shell脚本中,用以完成各种自动化处理任务。
sed 的工作流程主要包括读取、执行和显示三个过程。
读取:sed 从输入流(文件、管道、标准输入)中读取一行内容并存储到临时的缓冲区中(又称模式空间,pattern space)。
执行:默认情况下,所有的 sed 命令都在模式空间中顺序地执行,除非指定了行的地址,否则 sed 命令将会在所有的行上依次执行。
显示:发送修改后的内容到输出流。在发送数据后,模式空间将会被清空。
在所有的文件内容都被处理完成之前,上述过程将重复执行,直至所有内容被处理完。

1、sed的工作原理

模式空间 (缓存空间)

2、sed命令参数

常用选项 说明
-e或-expression 表示用指定命令或者脚本来处理输入的文本文件。
-f 或–file 表示用指定的脚本文件来处理输入的文本文件。
-h 或–help 显示帮助。
-n、–quiet 或 silent 表示仅显示处理后的结果。
-i.bak 直接编辑文本文件。
-r, -E 使用扩展正则表达式
-s 将多个文件视为独立文件,而不是单个连续的长文件流

3、常用操作

3.1、打印第3行内容

3.2、打印4-6行

3.3、以奇数进行打印

3.4、以偶数进行打印

3.5、从12行往后以偶数进行打印

3.6、替换字符

4、迁移符合条件的文本

参数 含义
H 复制到剪贴板
g、G 将剪贴板中的数据覆盖/追加至指定行
w 保存为文件
r 读取指定文件
a 追加指定内容。具体操作方法如下所示
I,i 忽略大小写

5、使用脚本编辑文件

使用 sed 脚本将多个编辑指令存放到文件中(每行一条编辑指令),通过“-f”选项来调用。例如执行以下命令即可将第 1~6 行内容转移至第 16 行后。

sed 直接操作文件示例

分组操作
当我们需要对一行数据进行多次操作的时候我们可以使用{}进行分组

1) sed ‘/root/{s/root/ROOT/;s/x/X/g}’ /tmp/passwd

2) sed -ne ‘/root/{s/root/ROOT/;s/x/X/g}’ -ne ‘1,10p’ /tmp/passwd

3)echo 123abcxyz |sed -r ‘s/(123)(abc)(xyz)/\1/’ ###分组 s//代表查找替换 ()代表分组 \1 代表留下的组

4)ifconfig ens33|sed -rn ‘2s/.inet ([0-9.]+) ./\1/p’

5)sed -r s/**[\t]*/#/ /etc/hosts.bak

总结

sed更倾向于更改功能

正则表达网络三剑客之sed相关推荐

  1. linux三剑客及正则表达(grep,sed,awk)

    首先我们现在知道Linux下一切皆文件,对Linux的操作就是对文件的处理,那么怎么能更好的处理文件呢?这就要用到我们上面的三剑客命令. 在说这三个命令前我们要插入一个小插曲就是"正则表达式 ...

  2. 三剑客grep sed awk

    三剑客 正则(RE)表达式 应用场景 规则 注意事项 正则符号 基础正则 扩展正则 正则实例 正则 VS 通配符 三剑客 grep sed sed核心应用 awk awk执行过程 内置变量 awk 正 ...

  3. 15分钟搞定Linux三剑客 grep sed awk

    剑客grep 来者何人 grep是linux上的字符串搜索匹配命令.这个名字来自于linux编辑器vim的一个命令g/re/p,表示全局匹配某个正则表达式并打印出来,这也体现了grep自身的功能. 基 ...

  4. 深入浅出linux三剑客之sed必杀技一例

    缘起:上完培训课后,同学们对sed加正则处理问题的热情高涨,氛围相当好,但是,有个别同学还是有些晕乎,因此,撰写此文.此例如果搞熟练了,sed和正则的大部分常用技术你掌握起来就简单了. 如果还有不会的 ...

  5. 三剑客之sed常用操作

    Sed Sed是一个强大的文本处理工具 可以采用正则匹配,对文本进行插入删除修改等操作 Sed处理的时候,一次处理一行,每一次把当前处理的存放在临时缓冲区,处理完后输出缓冲区内容到屏幕,然后把下一行读 ...

  6. Linux实战教学笔记12:linux三剑客之sed命令精讲

    第十二节 linux三剑客之sed命令精讲 标签(空格分隔): Linux实战教学笔记-陈思齐 ---更多资料点我查看 1,前言 我们都知道,在Linux中一切皆文件,比如配置文件,日志文件,启动文件 ...

  7. 三剑客之 sed详解

      sed 作者:Jack.X 归档:学习笔记 2017/4/13 三剑客之sed 第1章 sed详解: 1.1 sed介绍: sed是linux命令中三剑客的老二,sed命令是操作.过滤和转换文本内 ...

  8. 经典 正则表达技术文档

    正则表达式语法 一个正则表达式就是由普通字符(例如字符 a 到 z)以及特殊字符(称为元字符)组成的文字模式.该模式描 述在查找文字主体时待匹配的一个或多个字符串.正则表达式作为一个模板,将某个字符模 ...

  9. 文本处理三剑客之 sed 流编辑器(基础部分)

    文本处理三剑客之 sed 流编辑器(基础部分) SED 即 Stream EDitor.和交互式编辑器如 vi 需要打开整个文件不同,sed 是行编辑器,每次处理一行,比较适合在脚本中进行无交互编辑, ...

  10. Shell ❀ 三剑客 - Grep + Sed + Awk

    文章目录 八.三剑客 - Grep + Sed + Awk 1.Grep - 过滤 1.1 常用grep参数 1.2 使用方法 2.Sed - 行匹配 2.1 执行原理 2.2 常见语法 2.3 使用 ...

最新文章

  1. IntelliJ IDEA 常用设置注释提示
  2. 动手写一款简单的chrome天气插件
  3. 超干货 | 硅谷产品大师 Marty Cagan 70 分钟演讲2万字中译
  4. Vue.js2.0开发环境搭建(四)
  5. JavaScript的DOM编程总结
  6. [html] html5中的meta标签renderer有什么作用?
  7. ReverseFind
  8. linux下mysql5.7的安装教程_linux下mysql 5.7.18安装教程 邯郸
  9. c++ enum 给定类型_在 Rust 中创建 C/C++ API
  10. 关于CentOS7虚拟机出现Failed to start LSB: Bring up/down的解决方法
  11. Security+ 学习笔记4 社会工程攻击
  12. 微信小程序文件实现下载并预览(ios及安卓手机)
  13. math_Taylor_常见幂级数展开
  14. 2022国产芯片技术创新与市场应用论坛即将召开
  15. 64位CPU,64位操作系统,和64位应用程序三者之间的关系
  16. 游狼html鼠标,《速评13》65g极轻FPS鼠标游狼SK
  17. 小红书标签怎么添加?小红书标签对作品有什么影响
  18. Navicat 15注册时报错“Rsa Public key not find“的解决办法
  19. 什么是VOIP和SIP?
  20. php网速测试程序,js简单网速测试方法完整实例

热门文章

  1. 自动生成 : Java方法 toString(); hashCode(); equals(); compareTo()的方法 避免繁杂的体力活
  2. 程序猿段子:程序员崩溃很简单,改三次需求即可
  3. 追求得到之日即其终止之时, 寻觅的过程亦即失去的过程。——村上
  4. Excel数组与数组公式
  5. 方舟服务器制作修改,方舟生存进化服务器模式设置教程
  6. 路由器配置出现192.168.1.0 overlaps with Vlan2的解决方案
  7. 温湿度传感器—HDC1080
  8. Android Widget 小部件(一) 简单实现
  9. SpringBoot集成RabbitMQ实现消息重试机制,消息重试3次失败后写入死信队列,消息重试3次失败后入库
  10. 申请免费域名 + SSL 证书的方法