1 Sed简介

Sed(Stream EDitor)为Uninx系统上提供将编辑工作自动化的编辑器,使用者无需直接编辑数据。使用者可以利用Sed所提供的20多种不同的函数,进行不同的编辑动作。

Sed是以行为单位编辑文件,所以也称为行编辑器(Line editor)。

1.1 什么时候需要使用Sed

  • 在修改文档时,需要重复进行的动作,可以使用Sed进行编辑。比如统一修改人名等。
  • 一个文档需要多个不同操作的动作,可以用Sed一次执行。比如:Sed可以一次执行文档中的空白行删除、替换字符串、在第几行添加内容等。

1.2 Sed 所能做的编辑动作

  • delete--删除
  • change--改变
  • append--添加
  • insert--插入
  • 合并
  • 交换文件中的数据行
  • 读入其他文件的数据到当前文件中
  • substuite--替换
  • 转换其中的字母
  • .....

1.3 Sed 工作过程

如同其他Unix命令,Sed由标准输入读入编辑文件并由标准输出送出结果。

  • 1.Read a line from input stream
  • 2.Excute sed commands on a line
  • 3.Display result on output stream

    read -- Sed从输入流(文件、管道或者标准输入)读取一行并将其存储在其内部缓冲区中,该内部缓冲区称为模式缓冲区。

    execute -- 将所有Sed命令顺序应用到模式缓冲区中。

    display -- 将(已经修改的内容)发送到输出流。发送数据后,模式缓冲区将清空。

1.3.1 Sed 工作流程示例

//展示test.txt文件的内容,效果类似于cat命令
sed '' test.txt
/*
在上面这句话中,test.txt是输入的文件名,之前的单引号表示Sed命令。
*/

上面这句话的运行流程:

首先,sed从输入文件test.txt中读取一行,并将其存储在模式缓冲区中

然后,将sed命令应用于模式缓冲区。在上面的示例中没有sed命令,因此对于模式缓冲区不执行任何操作。

最后,删除并在标准输出上打印模式缓冲区的内容。

sed '' 

Hello Word
Hello Word

如果没有文件输入,那么sed会接受命令行的标准输入,然后用命令进行处理,之后进行输出。退出局Sed回话模式,使用ctrl+D键。

01-Sed简介的更多相关文章

  1. 01 HDFS 简介

    01.HDFS简介 大纲: hadoop2 介绍 HDFS概述 HDFS读写流程 hadoop2介绍 框架的核心设计是HDFS(存储),mapReduce(分布式计算),YARN(资源管理),为海量的 ...

  2. Sed简介 (转)

    Sed简介 sed 是一种在线编辑器,它一次处理一行内容.处理时,把当前处理的行存储在临时缓冲区中,称为“模式空间”(pattern space),接着用sed命令处理缓冲区中的内容,处理完成后,把缓 ...

  3. 01 . RabbitMQ简介及部署

    RabbitMQ简介 ​ MQ全称为Message Queue, 消息队列(MQ)是一种应用程序对应用程序的通信方法.应用程序通过读写出入队列的消息(针对应用程序的数据)来通信,而无需专用连接来链接它 ...

  4. 01 . Memcached简介及部署

    Memcached简介 memcached是一个自由开源,高性能,分布式内存对象存储系统 基于内存的key-valued存储,用来存储小块的任意数据(字符串,对象) 他是一个简洁的key-value存 ...

  5. 01 . Redis简介及部署主从复制

    简介 Remote Dictionary Server, 翻译为远程字典服务, Redis是一个完全开源的基于Key-Value的NoSQL存储系统,他是一个使用ANSIC语言编写的,遵守BSD协议, ...

  6. 01 . Mysql简介及部署

    Mysql数据库简介 什么是数据? ​ 数据(data)是事实或观察的结果,是对客观事物的逻辑归纳,是用于表示客观事物的未经加工的原始素材,数据是信息的表现形式和载体,可以是符号,文字,数字,语音,图 ...

  7. 01 . GitLab简介及环境部署

    GitLab简介 最初,该产品名为GitLab,是完全免费的开源软件,按照MIT许可证分发. 2013年7月,产品被拆分为:GitLabCE(社区版)和GitLabEE(企业版),当时,GitLabC ...

  8. JavaScript学习01 语言简介、基本使用和变量声明

    JavaScript语言简介.基本使用和变量声明 JavaScript是网景(Netscape)公司开发的一种基于客户端浏览器.面向对象.事件驱动式的网页脚本语言. JavaScript的前身叫Liv ...

  9. 笨鸟先飞之ASP.NET MVC系列之过滤器(01过滤器简介)

    过滤器 什么是过滤器? 过滤器(Filter) 主要的作用大致可以理解为把我们的附加逻辑注入到MVC框架的请求处理. 在ASP.NET MVC的请求处理中一种有19个管道事件分别是 BeginRequ ...

  10. Scala - 快速学习01 - Scala简介

    Scala简介 Scala(Scalable Language)是一门多范式(multi-paradigm)编程语言,Scala的设计吸收借鉴了许多种编程语言的思想,具备面向对象编程.函数式编程等特性 ...

随机推荐

  1. vue中将验证表单输入框的方法写在一个js文件中(表达式验证邮箱、身份证、号码、两次输入的密码是否一致)

    文章目录 1.实现的效果 2.编写的js文件(这里写在了api文件下) 3.在vue页面中引入(script) 4.页面代码 1.实现的效果 20220606_154646 2.编写的js文件(这里写 ...

  2. GitLab CI/CD 自动化部署入门

    前言:因为找了B站内推,测试开发,正好知道内部使用GitLab做自动化测试,所以简单学了一下,有错误的地方请指正. 入门 初始化 cp: 无法获取'/root/node-v12.9.0-linux-x ...

  3. 最全iOS 上架指南

    一.上架基本需求资料 1.苹果开发者账号(公司已有可以不用申请,需要开通开发者功能,每年 99 美元) 2.开发好的APP 二.证书 上架版本需要使用正式的证书 1.创建证书 Apple Develo ...

  4. vue3 页面跳转

    需要引入 useRouter import {useRouter} from "vue-router"; 然后声明对象 代码如下 export default { setup() ...

  5. Pytest学习

    pytest简介 pytest是python的一种单元测试框架,与python自带的unittest测试框架类似,但是比unittest框架使用起来更简洁,效率更高. 使用介绍 编写规则 测试函数以t ...

  6. linux系统配置文件或shell脚本批量注释

    1. 配置文件批量注释 1.1 批量注释 ① 进入命令行模式,按ctrl + v进入 visual block模式,键盘上下箭头选中多行,把需要注释的行标记起来 ② 按大写字母I,再输入注释符:# ③ ...

  7. SpringBoot 02: 初识SpringBoot

    1. SpringBoot 产生原因 spring, springmvc框架使用上的一些缺点: 需要使用的大量的配置文件 还需要配置各种对象 需要把使用的对象放入到spring容器中才能使用对象 需要 ...

  8. 一次SpringBoot版本升级,引发的血案

    前言 最近项目组升级了SpringBoot版本,由之前的2.0.4升级到最新版本2.7.5,却引出了一个大Bug. 到底是怎么回事呢? 1.案发现场 有一天,项目组的同事反馈给我说,我之前有个接口在新 ...

  9. CSP-S2022 游寄

    前言:最后确实寄了,因为疫情,都没考成. \(8.26\) 占坑. \(8.23\) 参加浴谷月赛初赛模拟,报的 \(S\) 组,只有 \(71\) 分. \(8.25\) \(AK\) 了同学出的比 ...

  10. KafkaOffsetMonitor:监控消费者和延迟的队列

    个人名片: 因为云计算成为了监控工程师‍ 个人博客:念舒_C.ying CSDN主页️:念舒_C.ying 目录 消费者组列表 消费组的topic列表 图中参数含义解释如下: topic的历史位置 O ...