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. 事件循环Event Loop

    在 事件循环 期间的某个时刻,运行时会从最先进入队列的消息开始处理队列中的消息.被处理的消息会被移出队列,并作为输入参数来调用与之关联的函数.正如前面所提到的,调用一个函数总是会为其创造一个新的栈帧. ...

  2. <四>构造函数初始化列表

    示例代码1 点击查看代码 class CDate{ public: CDate(int _year,int _month, int _day){ this->year=_year; this-& ...

  3. 嵌入式-C语言基础:malloc动态开辟内存空间

    #include<stdio.h> #include<stdlib.h> int main() { // char *p;//定义一个野指针:没有让它指向一个变量的地址 // ...

  4. 大数据下一代变革之必研究数据湖技术Hudi原理实战双管齐下-上

    @ 目录 概述 定义 发展历史 特性 使用场景 编译安装 编译环境 编译Hudi 关键概念 TimeLine(时间轴) File Layouts(文件布局) 索引 表类型 查询类型 概述 定义 Apa ...

  5. Atlas人工智能基础知识

    目录 一.  AI基本概念 1.人工智能是什么 2.人工智能.机器学习.深度学习的关系是什么 2.监督学习.无监督学习.半监督学习和强化学习是什么 3.什么是模型和网络 4.什么是训练和推理 5.什么 ...

  6. 理解MySQL事务

    事务是什么 百度百科是这么定义的: 事务(Transaction),一般是指要做的或所做的事情.在计算机术语中是指访问并可能更新数据库中各种数据项的一个程序执行单元.在关系数据库中,一个事务可以是一条 ...

  7. IDEA项目下out与target目录的区别详解

    IDEA项目下out与target目录的区别详解 一.目录主要区别: out存放的是该项目下所有Module(模块)的编译结果. target存放的是单个Module的编译结果. 二.目录详解 out ...

  8. WebApi如何启用Session并且使用

    首先打开项目的Global.asax文件,重新方法init public override void Init() { //注册事件 this.AuthenticateRequest += WebAp ...

  9. Devexpress中gridControl设置一列不可以编辑

     gridView1.Columns["列名"].OptionsColumn.AllowEdit = false;//设置列不可以编辑 记录一下. 大家如果有问题可以 Consol ...

  10. PHP日期加减计算

    PHP 标准的日期格式 date("Y-m-d H:i:s"); PHP 简单的日期加减计算 <?php date_default_timezone_set('PRC'); ...