linux sed工具,Linux:sed工具(示例代码)

1.什么是sed工具

sed意为流编辑器(Stream Editor),在Shell脚本和Makefile中作为过滤器使用非常普遍,也

就是 把前一个程序的输出引入sed的输入,经过一系列编辑命令转换为另一种格式输出。sed

和vi都源于 早期UNIX的ed工具,所以很多sed命令和vi的末行命令是相同的。

sed命令行的基本格式为:

sed option ‘script‘ file1 file2 ...

sed option -f scriptfile file1 file2 ...

sed处理的文件既可以由标准输入重定向得到,也可以当命令行参数传入,命令行参数可以

一次传入多个文件,sed会依次处理。sed的编辑命令可以直接当命令行参数传入,也可以写成一个脚本文件然后用-f参数指定,编辑命令的格式为

/pattern/action

其中pattern是正则表达式,action是编辑操作。sed程序一行一行读出待处理文件,如果某一行与pattern匹配,则执行相应的action,如果一条命令没有pattern而只有action,这个action将作用于待处理文件的每一行。

sed 是一种在线编辑器,它一次处理一行内容。处理时,把当前处理的行存储在临时缓冲区中,称为“模式空间”(pattern space),接着用sed命令处理缓冲区中的内容,处理完成后,把缓冲区的内容送往屏幕。接着处理下一行,这样不断重复,直到文件末尾。文件内容并没有改变,除非你使用重定向存储输出。Sed主要用来自动编辑一个或多个文件;简化对文件的反复操作;

-------------------------------------------------------------------------------------------

2.sed的基本使用:

在sed中,跟我们的工具原理一样,存在着-‘x‘,各种选项,还存在在action中的格式命令

首先我们来看一下基本的:

7. 命令和选项

sed命令告诉sed如何处理由地址指定的各输入行,如果没有指定地址则处理所有的输入行。

命令

a\ :在当前行后添加一行或多行。多行时除最后一行外,每行末尾需用“\”续行

c\ :用此符号后的新文本替换当前行中的文本。多行时除最后一行外,每行末尾需用”\"续行

i\ :在当前行之前插入文本。多行时除最后一行外,每行末尾需用”\"续行

d :删除模式空间多行,并读取下一行(1)

D:删除模式空间多行中的一行,不读取下一行(1)

h : 把模式空间里的内容复制到暂存缓冲区(后面说(1))

H :把模式空间里的内容追加到暂存缓冲区(1)

g :把暂存缓冲区里的内容复制到模式空间,覆盖原有的内容(1)

G:把暂存缓冲区的内容追加到模式空间里,追加在原有内容的后面(1)

l :列出非打印字符

p :打印行

n :读入下一输入行,并从下一条命令而不是第一条命令开始对其的处理

q :结束或退出sed

r :从文件中读取输入行

! : 对所选行以外的所有行应用命令

s :用一个字符串替换另一个

g :在行内进行全局替换

w :将所选的行写入文件

x :交换暂存缓冲区与模式空间的内容(1)

y :将字符替换为另一字符(不能对正则表达式使用y命令)

其中,sed在支持这些action选项之外,同样也支持在grep工具中的字符限定符,位置限定符,数量限定符:

关于限定符的话可以查看我的上一篇客:http://memory73.blog.51cto.com/10530560/1792687

与grep一样,sed也支持特殊元字符,来进行模式查找、替换。不同的是,sed使用的正则表达式是括在斜杠线"/"之间的模式。

如果要把正则表达式分隔符"/"改为另一个字符,比如o,只要在这个字符前加一个反斜线,在字符后跟上正则表达式,再跟上这个字符即可。

例如:sed -n ‘\o^Myop‘ datafile

当然了,还需要提醒的一点就是sed工具是基于basic模式,所以对于?+{}|()这几个字符他是取得字面意思,当我们需要使用他的特殊含义时,我们需要在前面加上\

下面我们就简单使用一下sed工具:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值