流编辑器:sed|学习笔记

简介: 快速学习流编辑器:sed

开发者学堂课程【Linux 文本管理入门:流编辑器:sed】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址https://developer.aliyun.com/learning/course/790


流编辑器:sed

内容简介:

一:工具简介

二:工具使用

三:常用场景

一:工具简介

SED的英文全称是Stream EDitor,它是一个简单而强大的文本解析转换工具,在1973-1974年期间由贝尔实验室的LeeE. McMahon开发。今天,它已经运行在所有的主流操作系统上了。

McMahon创建了一个通用的行编辑器,最终变成为了SED,SED的很多语法和特性都借鉴了ed编辑器。设计之初,它就已经支持正则表达式,SED可以从文件中接受类似于管道的输入,也可以接受来自标准输入流的输入,最强大地方是,内部实现里类似管道的处理方式。

SED由自由软件基金组织(FSF)开发和维护并且随着GNU/Linux进行分发,因此,通常它也称作GNU SED.对于新手来说,SED的语法看起来可能有些神秘,但是,一旦掌握了它的语法,就可以只用几行代码去解决非常复杂的任务,这就是SED的魅力所在。需要注意的是:Sed并不会改变源文件的内容。这是因为sed内部维护了缓冲区的绿故,每次操作都是在缓冲区中的。

l 处理流程

image.png

l 命令

² 命令基本格式

[address[.address]][!]action[arguments]

定位( address)和动作(action)

对于输入的每行,检是否符合第一个命令的定位信息,若且换排的动作,反之不执行,接着检查第二个命令,在正常情况下,检查完脚本中的所有命令后,会将处理的当前行输出。

l 定位

² 如何定位

定位可以是行号,下面的例子表示动作在第二行上执行:2

定位也可以是正则表达式,用‘’/表达式/”表示,下面的例子表示匹配所有行:

/^$/

² 两个定位

使用“,‘’隔开的两个位置,表示范围(闭区间)。下例表示动作在第二行到第六行都要执行:2,6

第二行,到第一个空行:

2,/^$/

最后一行:

使用“$”表示

l 几个主要动作

² 替换s/ pattern/ replacement/ flags

Pattern匹配的正则表达式

replacement碴换字符串

flags:n第几次出现时执行

g全替换(換筠行中所有的)

p打印

以下示例将,red替换成green

s/red/green/5

s/red/green/g

s/red/green/p

二:工具使用

l 插入

插入到当前行之前,text为要插入的内容,定位只能有1个。

[address]i text

示例,在第二行之前,插入:

sed"2i This line is inserted by sed"text1

l 追加

插入到当前行之后,text为要插入的内容,定位只能有1个。

[address]a text

示例,在第二行之后,插入:

sed*2a This line is appended by sed"text1

l 语法

² 两种形式

Send[-n] [‘command’][file...]

Send[-n][-f scriptfile][file...]

² -n

只输出有p命令指定的行

三:常用场景

l 批量替换

◆场景

假设你有一个xm格式的数据集,存放的是地震的数据信息,但其中的日期格式是yyyy-mm-dd格式的,现在需要将其转换为mmdy格式。

◆结果

Sed-n's^[0-9]\{4\}-([0-9]\,2\}-\([0-9]\{1,2\}\)^23M1/p’s

相关文章
|
搜索推荐 云计算
在线教育平台
在线教育平台
1208 3
可编程单结晶体管(PUT)有是什么特点,和二极管/晶闸管有什么区别
可编程单结晶体管(PUT)是一种基于原始二极管类型单结晶体管构建的半导体器件。 虽然可编程单结晶体管的名称中有“可编程”一词,但它在使用软件等方面不具有可编程性,而是可以使用外部电阻来设置触发点。
705 0
|
12月前
|
存储 机器学习/深度学习 人工智能
【AI系统】昇腾 AI 处理器
本文介绍华为昇腾AI处理器的架构与卷积加速原理,基于达芬奇架构设计,支持云边端一体化解决方案,具备高能效比和强大的3D Cube矩阵计算单元。文章详细解析了昇腾AI处理器的核心组件及其高效的数据处理机制,旨在通过软硬件优化实现高效的卷积计算加速。
1105 2
|
测试技术 C++
🕒 笑cry!Debian:稳如老狗,时间见了都颤抖!宇宙级“时间管理大师”非它莫属 🚀
在数字时代的快车道上,系统们竞相提速与更新,唯有Debian宛如老僧入定,以“稳”字诀笑看风云变幻。当他人忙于应对崩溃与兼容问题时,Debian用户自在饮茶,体验着技术海洋中的避风塘。Debian以近乎苛刻的测试流程,成为服务器领域的定海神针,它似乎在说:“我虽慢,但却稳如泰山。”在这个追求极速的世界,Debian教会我们:稳定,不仅是一种技术标准,更是一种从容不迫的生活态度。🧠
124 0
|
网络协议 Linux Windows
【PC】【MTU】PC查看和修改MTU的方法小结
【PC】【MTU】PC查看和修改MTU的方法小结
3370 0
|
编解码 异构计算
一个软件,实现类似HDMI显卡欺骗器功能
一个软件,实现类似HDMI显卡欺骗器功能
15174 1
一个软件,实现类似HDMI显卡欺骗器功能
|
Go Apache Windows
Windows 下 SVN 客户端使用
Windows 主推小乌龟 SVN. https://tortoisesvn.net/downloads.html (请选择正确的 32 / 64位版本) SVN 安装 https://www.runoob.com/svn/svn-install.html 和 TortoiseSVN 使用教程 https://www.runoob.com/svn/tortoisesvn-intro.html
1235 0
Windows 下 SVN 客户端使用
|
存储 运维 算法
云仿真平台有哪些特点
云仿真按照服务模式为用户提供OTS仿真软件,该服务模式采用云计算、大数据算法和人工智能技术实现,遵循软件即服务(saas)的概念,无需安装就可以运行。 仿真软件统一部署在云(公有云或私有云)服务器上,用户可以通过网络获得平台提供的服务,例如仿真操作、理论学习、仿真评估、教师管理、理论考试等。用户可以在云仿真平台操作环境、化工、食品等环境中操作虚拟仿真软件。
云仿真平台有哪些特点
支付宝卡包——核销卡劵(alipay.pass.instance.update)
接口名称:支付宝pass更新卡券实例接口 英文名称:alipay.pass.instance.update 上一步:[url]https://openclub.alipay.com/read.php?tid=13242&fid=72[/url] 下一步:[url]https://openclub.alipay.com/read.php?tid=13244&fid=72[/url] 一、注意事项 该接口主要用于使页面显示核销状态,且该接口还含有失效卡劵、更新卡劵功能。
2357 12
如何使用 Debian backports 更新源
Debian向来以稳定性著称,所以就存在一个问题,官方源分发的软件版本比软件本身的版本总是要慢不少,所以就有了 backports 源。本文将为大家介绍 Debian backports 更新源的使用方法。
1970 0