流编辑器: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

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

/^$/

²  两个定位

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

第二行,到第一个空行:

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

相关文章
|
4月前
|
数据采集 运维 监控
运维笔记:流编辑器sed命令用法解析
运维笔记:流编辑器sed命令用法解析
69 5
|
存储 Perl
sed编辑器
sed编辑器
78 0
|
缓存 BI Linux
《Linux操作系统编程》第九章 数据查找和筛选工具 : 了解流编辑器sed和报表生成器awk的简单使用
《Linux操作系统编程》第九章 数据查找和筛选工具 : 了解流编辑器sed和报表生成器awk的简单使用
89 0
|
存储 Shell Perl
shell编程之sed编辑器
shell编程之sed编辑器
77 0
Markdown编辑器学习笔记丨简单好用的排版与记录工具
Markdown编辑器学习笔记丨简单好用的排版与记录工具
|
Linux Perl
【Linux进阶命令 03】sed (文本的流编辑器)
【Linux进阶命令 03】sed (文本的流编辑器)
|
Unix Linux 开发工具
【Linux学习笔记】系列二:Linux文件与目录结构、VI/VIM编辑器
【Linux学习笔记】系列二:Linux文件与目录结构、VI/VIM编辑器
|
编解码 安全 JavaScript
某教程学习笔记(一):15、编辑器漏洞
某教程学习笔记(一):15、编辑器漏洞
125 0
某教程学习笔记(一):15、编辑器漏洞
|
人工智能 Linux Windows
Linux学习笔记(四) vi编辑器
Linux学习笔记(四) vi编辑器
85 0
|
数据可视化 Unix Linux
Linux 学习笔记四:Vim编辑器
大家好,我是阿萨。昨天我们学习了打包和压缩相关命令。今天我们学下下常见的Linux 编辑工具Vim。
108 0
Linux 学习笔记四:Vim编辑器